2025-05-10 21:58:58 +08:00

52 lines
1.3 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->slider,SIGNAL(valueChanged(int)),this,SLOT(sliderchanged(int)));
fd_edp = ::open("/sys/class/backlight/edp-backlight/brightness",O_RDWR|O_NONBLOCK);
fd_lvds = ::open("/sys/class/backlight/lvds-backlight/brightness",O_RDWR|O_NONBLOCK);
fd_dsi = ::open("/sys/class/backlight/dsi1-backlight/brightness",O_RDWR|O_NONBLOCK);
setWindowState(Qt::WindowMaximized);
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
ui->slider->setMinimum(1);
ui->slider->setValue(200);
connect(ui->exitBtn, &QPushButton::clicked, this, [=](){
close();
});
}
MainWindow::~MainWindow()
{
delete ui;
if (fd_edp > 0)
::close(fd_edp);
if (fd_dsi > 0)
::close(fd_dsi);
if (fd_lvds > 0)
::close(fd_lvds);
}
void MainWindow::sliderchanged(int v)
{
char buf[20];
sprintf(buf,"%d",v);
if (fd_edp > 0)
::write(fd_edp,buf,sizeof(buf));
if (fd_dsi > 0)
::write(fd_dsi,buf,sizeof(buf));
if (fd_lvds > 0)
::write(fd_lvds,buf,sizeof(buf));
}