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

歡迎訪問 生活随笔!

生活随笔

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

linux

qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制

發布時間:2024/1/23 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為Qt初學者,最近在編寫窗口最小化到托盤功能代碼的時候遇到了點阻礙。

Qt自帶的demo實現的功能太過繁瑣,涉及知識點又太雜,很難理出最核心的思路。網上的文章代碼也很多脫骨于這個demo,注釋說明太少。

所以自己對比了Qt的demo和網上的文章,自己寫了個簡單的最小化到系統托盤的功能。

先看一下代碼的實現功能:

1.空白窗口,關閉叉叉不會關閉窗口,而是最小化到托盤

2.系統托盤,單擊恢復隱藏窗口

3.系統托盤,右擊出現菜單,菜單有兩個選項:恢復窗口、關閉程序

再看一下源代碼(由于功能簡單,所以很多模塊功能就沒有單獨編寫函數,都直接寫在了初始化函數中)

頭文件mwin.h

#ifndef MWIN_H

#define MWIN_H

#include

#include

class MWin : public QWidget

{

Q_OBJECT

public:

explicit MWin(QWidget *parent = 0);

void init();//初始化函數

QSystemTrayIcon *tray;//托盤圖標

QMenu *menu;//托盤菜單

QAction *reset;//菜單實現功能:恢復窗口

QAction *quit;//菜單實現功能:退出程序

protected:

void closeEvent(QCloseEvent *event);//由于要關閉窗口變為隱藏至托盤圖標,所以要重寫close事件

signals:

public slots:

void TrayIconAction(QSystemTrayIcon::ActivationReason reason);//對托盤圖標操作的槽:本代碼實現單機圖標恢復窗口功能

};

#endif // MWIN_H

解釋文件mwin.cpp

#include "mwin.h"

MWin::MWin( QWidget *parent ) :

QWidget( parent )

{

init(); /* 初始化 */

}

void MWin::init()

{

/****主窗口****/

this->setFixedSize( 200, 200 );

this->setWindowTitle( "托盤APP" );

/****托盤*** */

tray = new QSystemTrayIcon( this ); /* 初始化托盤對象tray */

tray->setIcon( QIcon( QPixmap( ":/image/ico.png" ) ) ); /* 設定托盤圖標,引號內是自定義的png圖片路徑 */

tray->show(); /* 讓托盤圖標顯示在系統托盤上 */

QObject::connect( tray, SIGNAL( activated( QSystemTrayIcon::ActivationReason ) ), this, SLOT( TrayIconAction( QSystemTrayIcon::ActivationReason ) ) ); /* 連接信號與槽,實現單擊圖標恢復窗口的功能,槽是自定義的槽 */

/****初始化托盤菜單及功能****/

menu= new QMenu( this ); /* 初始化菜單 */

reset= new QAction( this ); /* 初始化恢復窗口 */

reset->setText( "顯示窗口" );

QObject::connect( reset, SIGNAL( triggered() ), this, SLOT( showNormal() ) ); /* 菜單中的顯示窗口,單擊連接顯示窗口 */

quit = new QAction( this ); /* 初始化退出程序 */

quit->setText( "退出程序" );

QObject::connect( quit, SIGNAL( triggered() ), qApp, SLOT( quit() ) ); /* 菜單中的退出程序,單擊連接退出 */

/*

* qApp,是Qt自帶的demo中的知識點,查了一下文檔,qApp是Qt中所有app的指針,關閉它就可以關閉當前的程序

* 之所以不用this,close(),是由于軟件要求關閉改為最小化到托盤,所以close()的功能已經不再是關閉窗口的功能,所以要另尋方法

* 將定義好的菜單加入托盤的菜單模塊中

*/

tray->setContextMenu( menu );

menu->addAction( reset );

menu->addAction( quit );

}

/* ***重置關閉close()*** */

void MWin::closeEvent( QCloseEvent *event )

{

hide(); /* 隱藏窗口 */

event->ignore(); /* 忽略關閉事件 */

}

/*

* 因為實現的是關閉窗口至系統托盤,所以我們先將窗口hide()隱藏,再忽略關閉窗口功能event->ignore()即可。

* ***托盤圖標槽***

*/

void MWin::TrayIconAction( QSystemTrayIcon::ActivationReason reason )

/* 參數是Qt的保留字,表示對托盤圖標的操作,該槽函數功能只實現了單擊功能,可以實現其他功能比如雙擊、中擊,具體可查文檔或者Qt自帶demo(關鍵字tray) */

{

if ( reason == QSystemTrayIcon::Trigger )

this->showNormal(); /* 如果對圖標進行單擊,則顯示正常大小的窗口 */

}

主函數調用測試main.cpp

#include

#include "mwin.h"

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

//***三行編碼設置,保證中文字符***

//本機電腦是UTF-8編碼,其他電腦自行調試修改編碼

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

MWin *win=new MWin();

win->show();

return app.exec();

}

總結

以上是生活随笔為你收集整理的qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产网站免费在线观看 | 非洲黄色大片 | 国产免费看 | 中文在线观看高清视频 | 久久综合影视 | 成人夜晚看av | 日韩国产精品一区 | 香蕉久热 | 亚洲三级在线免费观看 | 久久久久综合网 | 日韩啪 | 欧美日韩亚洲另类 | 日韩一卡二卡三卡四卡 | 国产中文在线视频 | 龚玥菲一级淫片 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 成人午夜视频在线免费观看 | 中文字幕23页 | 日韩av一二区 | 日韩欧美高清在线 | 日韩污视频在线观看 | 我和公激情中文字幕 | 亚洲成人视屏 | 日韩一区二区三区在线观看视频 | 美国三级a三级18 | 老司机午夜免费精品视频 | 无码 制服 丝袜 国产 另类 | 超碰啪啪| 欧美二区视频 | 日本一区不卡在线 | 国产一区在线免费观看 | 色综合福利 | 国产嫩草影院久久久久 | 中文字幕精品一区二区精品 | 精品99久久久久成人网站免费 | 黄色电影在线视频 | 免费色片 | 国产精品久久免费视频 | 国产精华一区二区三区 | 黄色大视频| 手机在线观看日韩av | 天天射天天搞 | 伊人久久五月天 | www.黄色| 午夜啪视频 | 国产成人精品免费在线观看 | 欧美大片一级 | 亚洲少妇中文字幕 | 国产精品一区二区三区免费观看 | 亚洲乱码国产乱码精品天美传媒 | 亚洲图片另类小说 | 夜夜嗨av | 日本成人精品视频 | a视频网站 | 哪里可以免费看毛片 | 日韩在线 中文字幕 | 色综合久久av | 久久亚洲精| 欧美性猛交xxxx免费看久久久 | 久久久久国产精品无码免费看 | 日韩性xxxx | 久久艳片www.17c.com | 日日爱网站 | 91精品国产乱码久久 | 久久天堂av | 成人国产精品免费观看 | 顶级黑人搡bbw搡bbbb搡 | 91你懂的 | 97免费观看视频 | 国产a级免费 | 911成人网| 美女福利视频一区 | 久久精品国产亚洲AV熟女 | 欧美精品毛片 | 欧美视频h | 免费成人av在线 | 野战少妇38p | 成人午夜精品一区二区三区 | 久草视频免费在线 | 北条麻妃二三区 | 欧洲美熟女乱又伦 | 中文字幕在线观看第二页 | 永久在线免费观看 | 最近高清中文在线字幕在线观看 | 懂色av一区二区夜夜嗨 | 亚洲视频图片小说 | 亚洲综合无码一区二区 | 精品国产乱码一区二区三区99 | 丰满大爆乳波霸奶 | 中文理论片 | 天堂视频网 | 中文字幕在线播 | 老汉色老汉首页av亚洲 | 黄色免费视频观看 | 国产又黄又猛的视频 | 中国免费看的片 | 在线观看免费www | 在线观看少妇 | 快播久久 |