• 4231阅读
  • 2回复

重写QApplication,触摸来让显示屏显示或者关掉背光灯 [复制链接]

上一主题 下一主题
离线lovezyb
 

只看楼主 倒序阅读 楼主  发表于: 2019-05-16
1、重写QApplication后,用notify来获取鼠标或者触摸屏是否有动作。
bool TimerAppliction::notify(QObject *obj, QEvent *e)

{
    if(e->type() == QEvent::MouseMove || e->type()==QEvent::TouchEnd )
    {
        checkTimes=0;  //当有触发时,时间清零
       //当屏没有亮时,让屏亮起来
        .......
    }
    return QApplication::notify(obj,e);
}
2、用定时器计算,比如1分钟都没有收到触摸信息时,让屏幕关闭。当有触摸动作时,再让屏幕点亮。
if(_checkTimes<60) checkTimes++;
//checkTimes超过这个数时,就让屏灭了
......

正常的情况,这样没有问题。但问题来了
当我在界面中,用QDialog弹出窗口的时候,这个弹出窗口在屏幕中比较小,当黑屏的时候,如果点不到这个弹出窗口的范围内,屏是不会亮的,这个时候因为QApplication没有接收到任何触发信息。

不知道有没有哪个遇到过这样的问题,能否提供一些意见。在此感谢.

离线liudianwu

只看该作者 1楼 发表于: 2019-05-16
对qdialog设置个属性即可
QDialog dialog;dialog.setWindowModality(Qt::WindowModal);
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线cj123sn

只看该作者 2楼 发表于: 2019-05-16
可以换个思路,把对话框设置全屏,中间小矩形是内容,矩形外面全透明
快速回复
限100 字节
 
上一个 下一个