Qt視窗最小化到托盤,托盤選單控制

2021-09-08 16:05:42 字數 1121 閱讀 6658

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

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

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

先看一下**的實現功能:

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

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

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

再看一下源**(由於功能簡單,所以很多模組功能就沒有單獨編寫函式,都直接寫在了初始化函式中)

標頭檔案mwin.h

#ifndef mwin_h

#define mwin_h

#include #include class mwin : public qwidget;

#endif // mwin_h

解釋檔案mwin.cpp

#include "mwin.h"

mwin::mwin( qwidget *parent ) :

qwidget( parent )

void mwin::init()

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

void mwin::closeevent( qcloseevent *event )

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

* ***托盤圖示槽***

*/void mwin::trayiconaction( qsystemtrayicon::activationreason reason )

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

主函式呼叫測試main.cpp

#include #include "mwin.h"

int main(int argc,char *ar**)

Qt視窗最小化到托盤,托盤選單控制

作為qt初學者,最近在編寫視窗最小化到托盤功能 的時候遇到了點阻礙。qt自帶的demo實現的功能太過繁瑣,涉及知識點又太雜,很難理出最核心的思路。網上的文章 也很多脫骨於這個demo,注釋說明太少。所以自己對比了qt的demo和網上的文章,自己寫了個簡單的最小化到系統托盤的功能。先看一下 的實現功能...

視窗最小化到托盤

使用notifyicon控制項和contextmenustrip控制項實現 1.將notifyicon控制項和contextmenustrip控制項拖到form上 2.在form的formclosing事件 取消關閉窗體 e.cancel true 將窗體變為最小化 this.windowstate...

MFC 最小化到托盤及右擊托盤選單

全域性變數 notifyicondata nid 托盤圖示全域性變數 在stdafx.h define wm showtask wm user 123 關聯訊息對映函式 位於begin message map與end message map之間 on message wm showtask,onsh...