1. 程式人生 > >【QT】QT從零入門教程(四):選單欄、工具欄、狀態列

【QT】QT從零入門教程(四):選單欄、工具欄、狀態列

  選單欄、工具欄、工作列是軟體中常見的元件,本節將會講解如何建立選單欄並生成一級選單、二級選單,如何在工具欄中新增圖示和控制元件,如何在工作列中顯示文字。

標題及圖示


// 標題大小
setWindowTitle("影象處理自編軟體 by 筆尖");

// 軟體圖示
setWindowIcon(QIcon("../Image/icon/ImageProcessing.png"));

// 介面大小
resize(QApplication::desktop()->width()*0.9, QApplication::desktop()->height()*0.9);
move(QApplication::desktop()
->width()*0.05, QApplication::desktop()->height()*0.01)
;

選單欄

// 第一個選單
QMenu *menu1 = menuBar()->addMenu(tr("選單欄1"));

// 建立子選單,第一個引數QIcon為新增圖示,注意路徑是否正確,第二個引數是子選單的顯示文字
QAction *act1 = new QAction(QIcon("../Image/act1.png"), tr("子選單"), this);

// 建立快捷方式:Ctrl+N,如果想自定義快捷鍵,可以設定為act->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
act1->setShortcuts(QKeySequence::New); // 子選單觸發時執行槽函式,不明白的可以參見前文:訊號與槽 connect(act1, SIGNAL(triggered()), this, SLOT(pSlot1())); // 選單欄新增子選單 menu1->addAction(act1); // 第二個選單:新增二級選單 QMenu *menu2 = menuBar()->addMenu(tr("選單欄2")); QAction *act2 = new QAction(QIcon("../Image/act2.png"), tr("一級選單"), this); QMenu *
submenu = new QMenu(); QAction *subact = new QAction(QIcon("../Image/subact.png"), tr("二級選單"), this); submenu->addAction(subact); connect(subact, SIGNAL(triggered()), this, SLOT(subSlot())); act2->setMenu(submenu); // 將二級選單新增到一級選單上 menu2->addAction(act2); // 將一級選單新增到選單欄上

執行結果

工具欄

// 視窗自帶的工具欄
ui.mainToolBar->addAction(act1);    //新增動作

// 自定義工具欄
QToolBar *toolBar = new QToolBar(); 
toolBar->setMovable(false);     // 設定工具欄不可移動,預設是可移動
addToolBar(toolBar);                // 把工具欄新增到視窗

QPushButton *button = new QPushButton();    // 這裡用按鈕控制元件進行測試
button->setText(tr("控制元件"));

toolBar->addAction(subact);         // 新增動作
toolBar->addWidget(button);         // 新增控制元件

執行結果

工作列

// 工作列
act1->setStatusTip(tr("子選單"));
act2->setStatusTip(tr("一級選單"));
subact->setStatusTip(tr("二級選單"));

執行結果

提示

  如果出現漢字亂碼問題,需要在程式中新增#pragma execution_character_set("utf-8")!!!

  標頭檔案中找不到QPushButton的,說明缺少標頭檔案。

  博主用到的標頭檔案有

#include <QtGui>
#include <QtWidgets>
#include <string>
#include <QMainWindow>