当前位置: 首页 > news >正文

做网站的好框架广州响应式网站建设

做网站的好框架,广州响应式网站建设,平面设计师网站都有哪些,国外服务器地址1、目标 利用QT实现调节屏幕亮度功能:在无屏幕无触控时,将屏幕亮度调低,若有触控则调到最亮。 2、调节亮度命令 目标装置使用嵌入式Linux系统,调节屏幕亮度的指令为: echo x > /sys/class/backlight/backlight/…

1、目标

利用QT实现调节屏幕亮度功能:在无屏幕无触控时,将屏幕亮度调低,若有触控则调到最亮。

2、调节亮度命令

目标装置使用嵌入式Linux系统,调节屏幕亮度的指令为:

echo x > /sys/class/backlight/backlight/brightness #x范围为0~10

利用终端执行此命令是没有问题的。不过,采用QProcess执行这个命令时,怎么都不响应,也不提示任何错误信息。

最终发现要采用这样的命令:

/bin/sh -c "echo x > /sys/class/backlight/backlight/brightness" #x为亮度值

程序代码实现如下:

QProcess setBright(this);// 进程函数,调用外部指令窗口
setBright.start("cat /sys/class/backlight/backlight/brightness \n"); #获取当前亮度值
setBright.waitForFinished(); // 等待命令执行完成
QString strCmd = QString("/bin/sh -c \"echo %1 > /sys/class/backlight/backlight/brightness\"").arg(brightness/10);
//执行指令
setBright.start(strCmd.toLocal8Bit().data());   //convert QString to char
setBright.waitForFinished(1000);// 等待指令执行完毕
QString strErrors = setBright.readAllStandardError();// 获取返回值
qDebug()<<strErrors;

3、检测触控/鼠标事件唤醒屏幕

3.1、功能说明

若一段时间没有点击屏幕,则调暗或熄灭屏幕。如果有触控(即鼠标按下/移动)事件,则唤醒点亮屏幕。

3.2、有窗口时的实现方法

有窗口时,实现比较简单。在窗口控件类中实现鼠标事件响应即可。示例代码如下:

//h
protected:void mousePressEvent(QMouseEvent *event);void mouseMoveEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);
//cpp
void MainWindow::mousePressEvent(QMouseEvent *event)
{qDebug() << "Mouse pressed";mScreenSleep->ToWake();    //唤醒屏幕
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{qDebug() << "Mouse moved";mScreenSleep->ToWake();    //唤醒屏幕
}
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{qDebug() << "Mouse released";mScreenSleep->ToWake();    //唤醒屏幕
}

注意:只能在窗口控件内响应鼠标事件。可使用QApplication类来响应窗口控件外的事件。

问题:窗口全屏且设置为透明时,若屏幕熄灭后无法点亮。

3.3、无窗口时的实现方法

3.3.1、利用QApplication类函数实现

示例代码如下:

//h
#ifndef GLOBALAPP_H
#define GLOBALAPP_H#include <QApplication>
#include "screensleep.h"    //屏幕亮度控制类class globalapp : public QApplication
{
public:globalapp(int &argc,char **argv);~globalapp();ScreenSleep *mScreenSleep;bool notify(QObject*, QEvent *);
};#endif // GLOBALAPP_H//cpp
#include "globalapp.h"
#include <QDebug>globalapp::globalapp(int &argc,char **argv):QApplication(argc,argv)
{mScreenSleep    = new ScreenSleep(this);
}
globalapp::~globalapp()
{delete  mScreenSleep;
}
bool globalapp::notify(QObject *obj, QEvent *e)
{if(e->type() == QEvent::KeyPress || e->type() == QEvent::MouseButtonPress ||  e->type() == QEvent::MouseMove){mScreenSleep->ToWake();}else if(e->type() == QEvent::SockAct) //为什么响应的是这个事件???{mScreenSleep->ToWake();}return QApplication::notify(obj,e);
}
//main
int main(int argc, char *argv[])
{globalapp a(argc, argv);    //使用自建的QApplication对象return a.exec();
}

3.3.2、利用事件过滤器函数

示例代码如下:

#include <QApplication>
#include <QMouseEvent>
#include <QDebug>class MouseHook : public QObject {bool eventFilter(QObject *obj, QEvent *event) override {if (event->type() == QEvent::MouseMove) {QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);//放置事件处理}else if(event->type() == QEvent::SockAct){QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);//放置事件处理}return QObject::eventFilter(obj, event);}
};
int main(int argc, char *argv[])
{MouseHook mouseHook;a.installEventFilter(&mouseHook);return a.exec();
}

从上面的注释中也看到了,无窗口时,鼠标点击或触控事件并不等于QT定义的鼠标事件,而是一个QEvent::SockAct事件!

至于为什么是这个,还未找到原因,但这是个大坑啊!

http://www.yayakq.cn/news/823937/

相关文章:

  • 网站备案幕布申请网站快速优化
  • 描述建设一个网站的基本步骤个人网站备案描述
  • tornado网站开发 教程自己建网站收费吗
  • 网站建设材料赣榆哪里有做网站的
  • wordpress修改密码张家港网站优化
  • iis搭建网站教程网站开发php和ui
  • 建网站莱阳哪家强?网站制作 徐州
  • 怎么做网站推广怀化沈阳小程序开发公司哪家好
  • 如何设计网站站点温州网站设计网站建设网站
  • 徐州网站建设方案推广正规网站建设官网
  • 网站开发 wenzhoupython做网站的多吗
  • 网站负责人核验现场拍摄照片电子件嘉兴网站推广
  • 杭州网站设计首选柚米郓城网站建设
  • 鄂尔多斯市网站建设怎么做网址
  • WordPress 整个网站导出湖南哪里有做网站的
  • 公司网站建设推荐q479185700顶上打开网页链接
  • 太原网站建设外包网站建设入什么科目
  • 品牌设计的英文关键词优化的原则
  • 网站的运营和维护行业平台网站开发
  • 网站排名推广的优点是什么下载了国外app怎么连不上网
  • 婚庆公司网站建设策划书谈谈你认为的网络营销是什么
  • 建设淘宝优惠券网站网站备案 申请
  • html框架做网站线下推广渠道和方式
  • 网站建设评审会总结发言房地产市场形势分析
  • 做网站费用 优帮云品牌网站制作网站公司
  • 一个专门做海鲜的网站php企业网站开发方案
  • app网站建设制作合肥装修公司排行榜
  • 网站维护工作计划动易网站迁移
  • dw网站模板下载地址荣耀手机官方商城官网
  • 徐州市中心做网站的公司招聘自己开发的软件怎么卖