做網(wǎng)站的困難海淀區(qū)seo搜索優(yōu)化
目錄
前言:
技能:
內(nèi)容:
一、ui中直接添加控件實現(xiàn)
二、 完全通過代碼實現(xiàn)菜單
參考:
前言:
基于QMainWindow,兩種方式實現(xiàn)菜單:通過直接添加ui控件快速添加菜單和完全通過代碼實現(xiàn)菜單,前者極為快速方便,后者更能練習(xí)技能
展示效果:
技能:
菜單欄的三個成分QMenuBar、QMenu、QAction使用
內(nèi)容:
兩種方式都是基于QMainWindow,所以創(chuàng)建工程的時候需要選擇基類QMainWindow
在Qt中,菜單的各個部分名稱如下圖
上面照片來自參考鏈接,講的很好,可以直接點參考鏈接去看哦
法一、ui中直接添加控件實現(xiàn)
如果是基于QMainWindow,直接點開ui文件,上面已經(jīng)提供了QMenuBar
直接雙擊修改名稱就可以
重要的是,一定要回車保存才行,根據(jù)上面介紹,這個叫QMenu
當前QMenu回車后會出來這個樣子,或者單機一個QMenu也是
這里繼續(xù)就可以添加QAction
?
但是在這里無法直接輸入中文,上面的QMenu是可以的
解決方法是:先輸入一個英文名稱創(chuàng)造出來一個QAction,點下面的信號編輯器中雙擊“文本”,這里編輯名稱就可以正常輸入中文
?
?
在這里編輯功能很多,比如圖標和快捷方式,快捷方式設(shè)置是從鍵盤讀取按鍵,可以組合。詳細內(nèi)容看參考鏈接?
點擊QAction旁邊的小圖標可以創(chuàng)建進一步的QAction,方法同理
創(chuàng)建完界面后要實現(xiàn)槽函數(shù),在Qt creator中可以直接右鍵Action編輯器中的QAction,有熟悉的“轉(zhuǎn)到槽”,后面的內(nèi)容就和之前一樣了。如果是用的VS2022聯(lián)機的Qt designer或者不想用直接轉(zhuǎn)到槽,可以看我之前的文章->在VS2022中使用QT
法二、 完全通過代碼實現(xiàn)菜單
首先在頭文件中在Qt類中添加私有成員,這里是兩個QMenu,兩個QAction
#include<QMenu>
#include<QMenuBar>
#include<QAction>
#include<QFileDialog>private:QMenu *pMenuFile;QMenu *pMenuEdit;QAction *pActNew;QAction *pActOpen;
在QMainWindow的構(gòu)造函數(shù)里面,創(chuàng)建、添加合并,也差不多看得懂。詳情看參考鏈接講得好
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);pMenuFile= new QMenu("文件(&File)");//快捷鍵ALT+F &后字母表示快捷鍵pMenuEdit= new QMenu("編輯(&Edit)");//快捷鍵ALT+Eui->menubar->addMenu( pMenuFile);ui->menubar->addMenu( pMenuEdit);pActNew=new QAction("新建");pActNew->setShortcut(Qt::CTRL|Qt::Key_N);pActOpen=new QAction("打開");pActOpen->setShortcut(Qt::CTRL|Qt::Key_O);pMenuFile->addAction(pActNew);pMenuFile->addAction(pActOpen);//下面是手動連接槽函數(shù)的//connect(pActOpen,SIGNAL(triggered(bool)),this,SLOT(OpenClicked()));//connect(pActNew,SIGNAL(triggered(bool)),this,SLOT(NewClicked()));}
?
參考:
【Qt學(xué)習(xí)系列】14.Qt程序菜單
【Qt學(xué)習(xí)系列】14_Qt程序菜單(2)
【Qt學(xué)習(xí)系列】14.Qt程序菜單(3)這個是實現(xiàn)右鍵菜單的,歡迎大家學(xué)習(xí)