日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Qt之系统托盘(QSystemTrayIcon详解)

發布時間:2025/3/15 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

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