溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)

發(fā)布時(shí)間:2020-07-25 13:03:13 來(lái)源:網(wǎng)絡(luò) 閱讀:10865 作者:泉奕 欄目:系統(tǒng)運(yùn)維

mymainwindow.cpp

#include "mymainwindow.h"
#include "ui_mymainwindow.h"

//#include <QMenuBar>           //使用前向聲明,不使用頭文件包含的形式,主要是為了編譯更快
class QMenuBar;//類(lèi)的前向聲明

myMainWindow::myMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::myMainWindow)
{
    ui->setupUi(this);
    openAction = new QAction(tr("&open"),this);
    openAction->setShortcut(QKeySequence::Open);//動(dòng)作的快捷鍵;比如:open快捷鍵 Ctrl+O(Qt的QKeySequence定義的)
    openAction->setStatusTip(tr("open a file"));//添加狀態(tài)欄的提示語(yǔ)句

    
    file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);

    toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);


}

myMainWindow::~myMainWindow()
{
    delete ui;
}

運(yùn)行之后,如圖:

子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)


添加圖標(biāo):1、首先要使用Qt的資源文件。在QtCreator的項(xiàng)目上右擊,選擇New File...,然后選擇resource file。

       子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)

2、然后點(diǎn)擊choose,命名,選擇好位置,下一步,完成即可。為了使用方便,我就把這個(gè)文件建在根目錄下,建議應(yīng)該在仔細(xì)規(guī)劃好文件之后,建在專(zhuān)門(mén)的rsources文件夾下。完成之后,生成的是一個(gè).qrc文件,qrc其實(shí)是Qt Recource Collection的縮寫(xiě)。

子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)

子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)

3、點(diǎn)擊Add按鈕,首先選擇Add prefix,然后把生成的/new/prefix改成/。這是prefix就是以后使用圖標(biāo)時(shí)需要提供的前綴,以/開(kāi)頭。添加過(guò)prefix之后,然后在工程文件中添加一個(gè)圖標(biāo),再選擇Add file,選擇那個(gè)圖標(biāo)。這樣完成之后保存qrc文件即可。

子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)

圖片的路徑怎么看呢?可以看出,Qt的資源文件視圖使用樹(shù)狀結(jié)構(gòu),根是/,葉子節(jié)點(diǎn)就是圖片位置,連接在一起就是路徑。比如這張圖片的路徑就是/resource/Open.png。

4、添加代碼 

class QIcon;  //類(lèi)的前向聲明
  ...

 myMainWindow::myMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::myMainWindow)
{
    ui->setupUi(this);
    openAction = new QAction(tr("&open"),this);
    openAction->setShortcut(QKeySequence::Open);//動(dòng)作的快捷鍵;比如:open快捷鍵 Ctrl+O(Qt的QKeySequence定義的)
    openAction->setStatusTip(tr("open a file"));//添加狀態(tài)欄的提示語(yǔ)句
   
    openAction->setIcon(QIcon(":/resource/open.png"));//添加這句代碼,添加圖標(biāo)

    
    file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);

    toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);


}

運(yùn)行如圖:子類(lèi)化QMainWindows,添加菜單欄及工具欄,并添加圖標(biāo)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI