QT 設置菜單圖標


目錄

一、添加主窗口菜單
二、添加菜單圖標
三、添加資源文件
四、使用資源文件
五、使用代碼來添加菜單和圖標
 
 

 

正文

 

一、添加主窗口菜單

 

1. 新建Qt Gui 應用,項目名稱為myMainWindow ,基類選擇QMainWindow ,類名為MainWindow

 

2. 創建完項目后,打開mainwindow.ui 文件進入設計模式。在這里可以看到界面左上角的“在這里輸入”,我們可以在這里添加菜單。雙擊“在這里輸入”,將其更改為“文件(&F) ”,然后按下回車鍵,效果如下圖所示。這里的&F 表明將菜單的快捷鍵設置為了Alt+ F ,可以看到,實際的顯示效果中& 符號是隱藏的。
<ignore_js_op> 4-1添加文件菜單.png

 

3. 同樣的方法,我們在文件菜單中添加“新建(&N) ”子菜單,效果如下圖所示。菜單后面的那個加號圖標是用來創建下一級菜單的。
<ignore_js_op> 4-2 添加新建菜單.png

 

二、添加菜單圖標

 

1.Qt 中的一個菜單被看做是一個Action ,我們在下面的Action 編輯器中可以看到剛才添加的“新建”菜單,如下圖所示。
<ignore_js_op> 4-3 動作編輯器.png

 

2. 雙擊該條目,會彈出編輯動作對話框,這里可以進行各項設置,比如我們可以設置菜單的快捷鍵,點擊一下快捷鍵后面的行編輯器,然后按下鍵盤上的Ctrl + N ,這樣就可以將該菜單的快捷鍵設置為Ctrl + N 。如下圖所示。那么大家可能會問,既然該菜單的快捷鍵是這么設置的,那么前面設置的“新建(N) ”中的N 是什么呢?這個可以被稱為加速鍵,就是只有當文件菜單處於激活(顯示)狀態時,按下N 鍵才會執行新建菜單的功能。
<ignore_js_op> 4-4編輯動作對話框.png

 

3. 在編輯動作對話框中的圖標后面的 <ignore_js_op> 4-5選擇圖標文件按鈕.png  黑色箭頭下拉框可以選擇使用資源還是使用文件,如果使用文件的話,那么就可以直接在彈出的文件對話框中選擇本地磁盤上的一個圖標文件。下面我們來講述使用資源的方式,如果直接點擊這個按鈕就是默認的使用資源。現在我們先按下編輯動作對話框的確定按鈕關閉它。

 

三、添加資源文件

 

1.Qt 中可以使用資源文件將各種類型的文件添加到最終生成的可執行文件中,這樣就可以避免使用外部文件可能出現的一些問題。而且,在編譯時Qt 還會將資源文件進行壓縮,我們可能發現生成的可執行文件比我們添加到其中的資源文件還要小。

 

2. 我們向項目中添加新文件,模板選擇Qt 資源文件。如下圖所示。然后將名稱設置為myResources

 

<ignore_js_op> 4-6選擇資源文件模板.png

 

3. 創建完文件后會自動打開該資源文件,這里需要先在下面添加前綴,就是點擊添加按鈕,然后選擇前綴,默認的前綴是“/new/prefix1”,這個可以隨意修改(不要出現中文字符),我們這里因為要添加圖片,所以修改為/myImages 。然后再按下添加按鈕來添加文件,這里最好將所有要用到的圖片放到項目目錄中。比如我們這里在項目目錄中新建了一個images 文件夾,然后將需要的圖標文件粘貼進去。添加完文件后,如下圖所示。
<ignore_js_op> 4-7添加完資源文件后.png

 

4. 當添加完資源后,一定要按下Ctrl + S 來保存資源文件,不然在后面可能無法顯示已經添加的資源。

 

四、使用資源文件

 

1. 我們重新到設計模式打開新建菜單的編輯動作對話框,然后添加圖標。在打開的選擇資源對話框中,第一次可能無法顯示已經存在的資源,可以按下左上角的綠箭頭來更新顯示。效果如下圖所示。
<ignore_js_op> 4-8選擇資源對話框.png

 

2. 我們點擊這里需要的新建圖標filenew.png ,按下確定即可。現在按下Ctrl + R 鍵運行程序,效果如下圖所示。
<ignore_js_op> 4-9程序運行效果.png

 

五、使用代碼來添加菜單和圖標

 

1. 對於添加的資源文件,在項目目錄中可以看到,即myResources.qrc ,使用寫字板程序將其打開,可以發現它其實就是一個XML 文檔:
<RCC>
    <qresourceprefix="/myImages">
       <file>images/filenew.png</file>
       <file>images/fileopen.png</file>
       <file>images/filesave.png</file>
       <file>images/filesaveas.png</file>
       <file>images/find.png</file>
     </qresource>
</RCC>

 

2. 前面是在設計模式添加的圖標文件,下面我們使用代碼再來添加一個菜單,並為其設置圖標。在編輯模式打開mainwindow.cpp 文件,並在構造函數中添加如下代碼:

 

//   創建新的動作
QAction   * openAction = new QAction(tr("&Open"), this);
//   添加圖標
QIcon   icon(":/myImages/images/fileopen.png");
openAction->setIcon(icon);
//   設置快捷鍵
openAction->setShortcut(QKeySequence(tr("Ctrl+O")));
//   在文件菜單中設置新的打開動作
ui->menu_F->addAction(openAction);

 

        這里添加圖標時,就是使用的資源文件中的圖標。使用資源文件,需要在最開始使用冒號,然后添加前綴,后面是文件的路徑。在代碼中使用文件菜單,就是使用其objectName 。大家現在可以運行程序查看效果,當然這里也可以將Open 改為中文。



結語

       這一篇中主要講解了如何使用資源文件,講述了在設計模式和代碼中兩種使用方法。希望大家可以親自練習一下本篇的內容,在后面的章節中,對於添加菜單和圖標等操作將不再進行講解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM