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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Qt之系统托盘(QSystemTrayIcon详解)

發布時間:2025/3/15 windows 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt之系统托盘(QSystemTrayIcon详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
托盤是什么?這個就不用在多說了!而Qt中如何實現自己的托盤功能,Qt自帶的demo也很明了,這里我們就來實現自己的一個托盤。。。

? void TrayMenu::createActions()
? {
???? //創建托盤項
???? action_show = new QAction(this);
???? action_quit = new QAction(this);
???? action_login_home = new QAction(this);
???? action_help = new QAction(this);
???? action_about = new QAction(this);
???? action_check_update = new QAction(this);
???? action_setting = new QAction(this);

?

??? ?//設置托盤項圖標

???? action_show->setIcon(QIcon(":/icon/open"));
??? ?action_login_home->setIcon(QIcon(":/icon/home"));
???? action_help->setIcon(QIcon(":/icon/help"));
???? action_about->setIcon(QIcon(":/icon/about"));
???? action_check_update->setIcon(QIcon(":/icon/update"));
???? action_setting->setIcon(QIcon(":/icon/set"));
???? action_quit->setIcon(QIcon(":/icon/quit"));

????

???? //設置托盤想文本

??? ?action_show->setText(QString("顯示"));
???? action_quit->setText(QString("退出"));
???? action_login_home->setText(QString("登錄網頁"));

???? action_help->setText(QString("幫助"));
???? action_about->setText(QString("關于"));

???? action_check_update->setText(QString("檢查更新"));

???? action_setting->setText(QString("設置"));

?

???? //添加菜單項
???? this->addAction(action_show);
???? this->addAction(action_setting);
???? this->addAction(action_login_home);
???? this->addSeparator();
???? this->addAction(action_help);
???? this->addAction(action_about);
???? this->addAction(action_check_update);
???? this->addSeparator();
???? this->addAction(action_quit);

???? action_setting->setVisible(false);

?

??? ?//設置信號連接(這里僅列舉連接顯示窗口的信號)
???? QObject::connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));
?}

?

? LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent)
? {

???? QSystemTrayIcon *system_tray = new QSystemTrayIcon();

???? //放在托盤提示信息、托盤圖標

???? system_tray ->setToolTip(QString("我就是托盤"));
?????system_tray ->setIcon(QIcon(":/icon/login"));

???? TrayMenu *tray_menu = new TrayMenu();
???? system_tray->setContextMenu(tray_menu);

???? //點擊托盤執行的事件
? ? ? connect(system_tray?, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));
? ? ?connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));

???? //顯示托盤
???? system_tray->show();

??? //托盤顯示提示信息

??? system_tray->showMessage(QString("托盤標題"), QString("托盤顯示內容"));

? }

?

? void LoginDialog::iconIsActived(QSystemTrayIcon::ActivationReason reason)
? {
???? switch(reason)
???? {
???? //點擊托盤顯示窗口
???? case QSystemTrayIcon::Trigger:
????? {
??????? showNormal();
??????? break;
????? }???
??? ?//雙擊托盤顯示窗口
???? case QSystemTrayIcon::DoubleClick:
???? {
?????? showNormal();
?????? break;?
?????}????????????
???? default:
????? break;
???? }
? }

?

? OK,這樣我們的托盤功能就Over了!

總結

以上是生活随笔為你收集整理的Qt之系统托盘(QSystemTrayIcon详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

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