日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT关于屏幕保护程序

發布時間:2023/12/18 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT关于屏幕保护程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,要寫一個屏保程序,需要一個定時器來統計多長時間沒有處理事件進入休眠,

第二,事件處理是一個全局性的,過濾處理事件,

//直接上源碼吧,自己改改。重寫Application #ifndef GLOBALAPPLICATION_H #define GLOBALAPPLICATION_H #include <QApplication> #include <QTimer> #include <QWidget> #include <QSplashScreen> class GlobalApplicationPri : public QWidget { Q_OBJECT Q_PROPERTY(bool mState READ state WRITE setState NOTIFY stateChanged) public: explicit GlobalApplicationPri(QWidget *parent = 0); ~GlobalApplicationPri(); void setWindowInstance(QWidget*wnd,QSplashScreen *); bool state(); void setState(bool);//周圍狀態 public slots: void mAcceptGlobalEvent(); void mAcceptActivationEvent(); signals: void stateChanged(); private: QWidget *mwidget; QTimer *mtime; QSplashScreen *msplash; bool mState; }; class GlobalApplication : public QApplication{ public: GlobalApplication(int &argc,char **argv,QWidget *parent = 0); ~GlobalApplication(); bool notify(QObject*, QEvent *); void setWindowInstance(QWidget*wnd,QSplashScreen *); private: GlobalApplicationPri *m_obj; QWidget *mwidget; QSplashScreen *msplash; }; #endif // GLOBALAPPLICATION_H

下面是.cpp文件

#include "globalapplication.h" #include <QKeyEvent> #include <QDebug> GlobalApplication::GlobalApplication(int &argc,char **argv,QWidget *parent):QApplication(argc,argv) {m_obj = new GlobalApplicationPri();}GlobalApplication::~GlobalApplication() {delete m_obj; }bool GlobalApplication::notify(QObject *obj, QEvent *e) {const QMetaObject* objMeta = obj->metaObject();QString clName = objMeta->className();if(e->type() == QEvent::KeyPress){QKeyEvent *keyEvent = static_cast<QKeyEvent *>(e);if(keyEvent->key() == Qt::Key_F1){qDebug()<< clName;qDebug() << "F1";}}else if(e->type() == QEvent::MouseButtonPress){QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(e);if(mouseEvent->buttons() == Qt::LeftButton){qDebug() << "left";m_obj->setState(true);}if(mouseEvent->buttons() == Qt::RightButton){qDebug() << "Right";}}return QApplication::notify(obj,e); }void GlobalApplication::setWindowInstance(QWidget *wnd,QSplashScreen *splash) {mwidget = wnd;msplash = splash;m_obj->setWindowInstance(wnd,splash); }GlobalApplicationPri::GlobalApplicationPri(QWidget *parent) {mwidget = Q_NULLPTR;mtime = Q_NULLPTR;msplash = Q_NULLPTR;mtime = new QTimer(this);connect(mtime, SIGNAL(timeout()),this, SLOT(mAcceptGlobalEvent()));mtime->start(20000);connect(this, SIGNAL(stateChanged()),this, SLOT(mAcceptActivationEvent())); }GlobalApplicationPri::~GlobalApplicationPri() {}void GlobalApplicationPri::setWindowInstance(QWidget *wnd, QSplashScreen *splash) {mwidget = wnd;msplash = splash; }bool GlobalApplicationPri::state() {return mState; }void GlobalApplicationPri::setState(bool mcont) {mState = mcont;emit stateChanged(); }void GlobalApplicationPri::mAcceptGlobalEvent() {mwidget->hide();msplash->show(); }void GlobalApplicationPri::mAcceptActivationEvent() {mtime->stop();msplash->hide();mwidget->show();mtime->start(20000); }

最后來看看主函數

#include "mainwindow.h" #include <QApplication>using namespace LENSOMETER;#include <QObject> #include <QApplication> #include <QFontDatabase> #include <QSplashScreen> #include "../../common/global/globalapplication.h" #include "mainwindow.h" #include <QThread>int main(int argc, char *argv[]) {GlobalApplication app(argc, argv);// // /// \brief splash // ///MainWindow mainWin;QSplashScreen *splash = new QSplashScreen;app.setWindowInstance(&mainWin,splash);splash->setPixmap(QPixmap(":/ui_image/load.png"));splash->show();//顯示圖片Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;splash->showMessage(QObject::tr("Setting up the main window..."),topRight, Qt::white);splash->showMessage(QObject::tr("Loading modules..."),topRight, Qt::white);splash->showMessage(QObject::tr("Establishing connections..."),topRight, Qt::white);QThread::sleep(1);mainWin.show();splash->finish(&mainWin);return app.exec(); }

總結

以上是生活随笔為你收集整理的QT关于屏幕保护程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区的视频 | 羞羞的软件 | 99视频精品 | 奴色虐av一区二区三区 | 国产精品成人免费 | www国产www| 日本九九视频 | 日本视频在线观看 | 国产精品成人电影在线观看 | 亚洲一级一区 | 在线草 | 97久久国产亚洲精品超碰热 | 一区二区视频观看 | 激情九月天 | 免费国产小视频 | 国产一级做a爰片久久毛片男男 | 天堂资源中文在线 | 欧美一区二区三区爱爱 | 国产精品美女久久久久av超清 | 91免费黄视频 | 欧美色图日韩 | 第五色婷婷| 美女让男人捅 | 双女主黄文 | 国产高潮网站 | 91在线精品观看 | 欧美精品一级二级 | 超碰97免费 | 国产第六页 | 午夜激情男女 | 99精品区 | 精品一区二区三区三区 | 久久精工是国产品牌吗 | 免费在线观看中文字幕 | 中文字幕 视频一区 | 成人精品免费 | 久久黄网 | 午夜激情网| 影音先锋人妻啪啪av资源网站 | 国产亚洲一区二区三区 | 蜜臀久久99精品久久久久宅男 | 国产精品久久久久精 | 制服.丝袜.亚洲.中文.综合 | 精品人妻一区二区三区蜜桃视频 | 精品人伦一区二区三区蜜桃网站 | 美女mm131爽爽爽免费动视频 | 毛片大全| 综合xx网| 国内av网站 | 337p亚洲欧洲色噜噜噜 | 一级片在线 | 天干夜天干天天天爽视频 | 少妇紧身牛仔裤裤啪啪 | 五月天久久综合 | 国产又大又黄的视频 | 午夜片在线观看 | 精品免费av| 欧美91视频| 久久综合久久88 | 国产伦精品 | 天天综合网久久 | 91成年人网站 | 黑人操日本女人视频 | 99九九视频 | 青春草国产视频 | 91sex国产| 日本亲子乱子伦xxxx | 快灬快灬一下爽69 | 天天干天天爽 | 亚洲欧美不卡 | 在线看片亚洲 | 久久婷婷五月综合色国产香蕉 | 色图色小说| 久久精品中文闷骚内射 | 爱操av| av在线免费网址 | 天天操天天曰 | 97午夜 | 国产伦精品一区二区三区视频1 | 成人自拍网 | 久草福利资源在线 | 中文字幕一区二区三区乱码人妻 | 青青草视频播放器 | 婷婷久久伊人 | 国产夫妻自拍小视频 | 国产午夜麻豆影院在线观看 | 欧美成人午夜 | 少妇特黄一区二区 | 国产一区毛片 | 精品久久久国产 | 欧美乱码精品一区二区 | 日本女人一区二区三区 | 日日日日日日 | 激情久久久 | 亚洲熟女乱综合一区二区 | 黄大色黄大片女爽一次 | 久久久久久久久久久网 | 在线一区av| av在线免费网站 |