QtMainWindow選單的使用

2021-07-08 08:58:37 字數 1893 閱讀 3162

在qt的mainwindow專案中可以設定視窗的選單,用記事本為例子了解一下什麼是選單欄,什麼是選單,什麼是選單項:

這個是選單欄,用來「存放「選單的。

這是在選單欄上乙個乙個的選單,用來「存放選單項的」。

這是選單上乙個乙個的選單項。

在qt中,選單欄叫做qmenubar  選單叫做qmenu 選單項叫做qaction

新建乙個qt 不帶介面選項的 mainwindow專案。

在mainwindow.h中新增標頭檔案qmenubar qmenu  qaction

然後新增私有成員變數:
qmenubar*bar;

qmenu*menu1;

qmenu*menu2;

qaction*action1;

qaction*action2;

qaction*action3;

qaction*action4;

然後在mainwindow的建構函式中用this->menubar()獲的選單欄的控制代碼賦值給bar

,menu1=bar->addmenu(tr("

選單1")); 這樣就成功的在選單欄新增了乙個名為選單1的選單,執行介面如下:

第二個選單和上面的方法一樣,menu2=bar->addmenu(tr("

選單2"));就會在選單1的右邊多出乙個選單2,接下來開始在選單中新增選單項,在新增選單項之前必須先把qaction例項化,

action1=new

qaction(tr("

選單項1"),this);

action2=new

qaction(tr("

選單項2"),this);

action3=new

qaction(tr("

選單項3"),this);

action4=new

qaction(tr("

選單項4"),this);

然後用menu的方法addaction新增選單項:

menu1->addaction(action1);

menu1->addaction(action2);

menu1->addaction(action3);

menu1->addaction(action4);

執行介面:

現在基本上就已經實現了選單和選單項的隨意新增,不知道大家有沒有注意到剛剛演示的那個記事本的選單項中有「分隔符」,

當然,在qt中也可以實現,menu的方法addseparator()就是這個效果,在上面那個新增選單項3的後面新增乙個試試:

menu1->addaction(action1);

menu1->addaction(action2);

menu1->addaction(action3);

menu1->addseparator();

menu1->addaction(action4);

效果如下:

這樣就完善了嗎?好像還有這個:

也就是快捷鍵,action的setshortcut方法可以給選單項新增快捷鍵,先給第乙個選單項新增槽函式做測試,標頭檔案新增

private

slots:

voidon_action1();

mainwindow中新增函式

void

mainwindow::on_action1()

槽函式寫成:connect(action1,signal(triggered()),this,slot(on_action1()));
好吧,現在給action1設定個快捷鍵測試下,action1->shortcut(tr("ctrl+o"));

執行後按下ctrl+o程式關閉了

,教程結束。。。。。更多教程 www.c0ks.com

Qt Mainwindow新增 刪除標題欄

需求 新增 刪除qt mainwindow的標題欄 特殊點 不能在mainwindow外部進行設定,須在mainwindow內部設定 slot或其他內部函式中 傳統方法 this setwindowflags qt framelesswindowhint 取消標題欄 this setwindowfl...

用彈出選單模擬視窗的選單

在加了skin的不規則區域視窗,視窗選單很難固定在原來的位置,無法用原來的方式實現。這裡提供了一種用彈出選單模擬視窗選單的方法。首先在視窗的任意乙個區域畫出選單的效果,這個區域我們稱為選單區,我們把每個選單項在視窗中的位置儲存下來 crect m rcmenu 3 程式主要要處理三個訊息 wm lb...

選單的許可權

三層系統的選單的許可權問題 所謂選單,可以是c 做的選單,也可以是幾個js做的。下面是用js做的選單許可權 js的麵包屑導航 1.顯示層 1 準備三張 d1 1.jpg,d1 2.jpg,d1 3.jpg 用途 已登入顯示一張 未登入顯示一張 滑鼠懸停顯示一張。有許可權的選單 超連結 無許可權的選單...