【QT】QT從零入門教程(四):選單欄、工具欄、狀態列
阿新 • • 發佈:2019-01-09
選單欄、工具欄、工作列是軟體中常見的元件,本節將會講解如何建立選單欄並生成一級選單、二級選單,如何在工具欄中新增圖示和控制元件,如何在工作列中顯示文字。
標題及圖示
// 標題大小
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>