嵌入式linux下QT实现长时间无操作关闭屏背光

5 篇文章 0 订阅

嵌入式linux下关闭屏背光的方法通用方法:

常用操作是进行0 和1操作

echo 0 > /sys/class/graphics/fb0/blank 关闭

有时根据不同的系统进行操作,现在手上项目使用英创板卡,操作如下:

echo 6 > /sys/class/backlight/backlight/brightness 打开背光  0-6都可以发现亮度区别不大 
echo 7 > /sys/class/backlight/backlight/brightness关闭背光

用命令测试正常。之后是在应用程序中进行操作修改:

QT下有鼠标键盘事件,目前设备只有触摸屏,所以重写Qt的鼠标事件:

protected:
    void mouseMoveEvent(QMouseEvent *e);
    void mousePressEvent(QMouseEvent *e);
    void mouseReleaseEvent(QMouseEvent *);
    bool eventFilter(QObject *watched, QEvent *event);

定义int变量 backlight = 0;加入定时操作backlight +=1;

backlight大于到指定时间无操作时候进行关闭背光操作;

if(!isBrightClose)
        {
            system("echo 7 > /sys/class/backlight/backlight/brightness");// 关闭背光
            isBrightClose = true;
            realTimer->stop();
        }

重写鼠标单击操作,有鼠标操作时backlight重新赋值为0,重新计数;如背光关闭打开背光

void Widget::mousePressEvent(QMouseEvent *e)
{
    mousePoint = e->globalPos();
    isPressedWidget = false; // 当前鼠标按下的即是QWidget而非界面上布局的其它控件
    if (e->button() == Qt::LeftButton) {
        mousePressed = true;
        mousePoint = e->globalPos() - this->pos();
        e->accept();
        backlight = 0;
        if(isBrightClose)
        {
            system("echo 6 > /sys/class/backlight/backlight/brightness"); //打开背光
            isBrightClose = false;
            realTimer->start();
        }
    }
}

上面只是在Widget内操作鼠标有效,还要在其它按钮button等事件处加入同样操作,目前测试正常。

更好的操作是让子控件的鼠标事件传递到父控件Widget,目前没有实现。

最后在测试时为了避免断电或重启时处在显示关闭状态,造成重启后背光关闭,还需要在开机启动时将背光打开。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值