當(dāng)前位置:
首頁 >
Qt中的QMainWindow
發(fā)布時間:2025/4/5
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Qt中的QMainWindow
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1 Qt中的QMainWindow簡介
- 1.1 應(yīng)用程序中的主窗口
- 1.2 QMainWindow
- 2 QMainWindow中的菜單欄
- 3 QMainWindow中的工具欄
- 4 QMainWindow中的狀態(tài)欄
1 Qt中的QMainWindow簡介
1.1 應(yīng)用程序中的主窗口
應(yīng)用程序中的主窗口:
- 主窗口是與用戶進行長時間交互的頂層窗口。
- 程序的絕大多數(shù)功能直接由主窗口提供。
- 主窗口通常是應(yīng)用程序啟動后顯示的第一個窗口。
- 整個程序由一個主窗口和多個對話框組成。
1.2 QMainWindow
Qt中的主窗口:
- Qt開發(fā)平臺中直接支持主窗口的概念。
- QMainWindow是Qt中主窗口的基類。
- QMainWindow繼承于QWidget是一種容器類型的組件。
QMainWindow中封裝的秘密:
QMainWindow中的組件布局:
2 QMainWindow中的菜單欄
菜單欄只能有一個!
在Qt中提供與菜單相關(guān)的類組件:
在Qt主窗口中創(chuàng)建菜單:
注意:QAction* action = new QAction("New(&O)", NULL);,這里也可以設(shè)置快捷鍵。
快捷鍵設(shè)置:
action->setShortcut(QKeySequence(KEY)):
- QKeySequence:Qt中與快捷鍵相關(guān)的類。
- KEY:Qt中代表鍵值的常量,比如Qt::CTRL, Qt::KEY_X。
QAction的信號:
QAction被點擊之后會產(chǎn)生一個triggered信號:
- 通過信號與槽的機制能夠捕捉到QAction對象的操作。
- 項目中可以將多個信號映射到同一個槽函數(shù)。
3 QMainWindow中的工具欄
工具欄的概念和意義:
- 應(yīng)用程序中集成各種功能實現(xiàn)快捷使用的一個區(qū)域。
- 工具欄并不是應(yīng)用程序必須存在的組件。
- 工具欄中的元素可以是各種窗口組件。
- 工具欄中的元素通常以圖標(biāo)按鈕的方式存在。
在Qt中提供與工具欄相關(guān)的組件:
工具欄可以有多個!
在Qt主窗口中創(chuàng)建工具欄:
QToolBar的關(guān)鍵成員函數(shù):
- void setFloatable(bool floatable):設(shè)置工具欄是否可以懸浮(不在指定的邊框位置)。
- void setMovable(bool movable):設(shè)置工具欄是否可以拖動。
- void setIconSize(const QSize& iconSize):設(shè)置工具欄圖標(biāo)的大小。
QToolBar中可以加入任意的QWidget組件:
4 QMainWindow中的狀態(tài)欄
狀態(tài)欄的概念和意義:
- 狀態(tài)欄是應(yīng)用程序中輸出簡要信息的區(qū)域。
- 狀態(tài)欄一般位于主窗口的最底部。
- 狀態(tài)欄中的消息類型:
- 實時消息,如:當(dāng)前程序狀態(tài)。
- 永久消息,如:程序版本號,機構(gòu)名稱。
- 進度消息,如:進度條提示,百分比提示。
在Qt中提供與狀態(tài)欄相關(guān)的類組件:
在Qt主窗口中創(chuàng)建狀態(tài)欄:
Qt狀態(tài)欄的設(shè)計原則:
- 左邊的區(qū)域用于輸出實時消息。
- 右邊的區(qū)域用于設(shè)置永久消息。
- addWidget在狀態(tài)欄左半部分添加組件。
- addPermanentWidget在狀態(tài)欄右半部分添加組件。
狀態(tài)欄示例程序:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {QStatusBar* sb = statusBar();QLabel* l = new QLabel("Label");QLineEdit* e = new QLineEdit();QPushButton* b = new QPushButton("Button");sb->addPermanentWidget(l);sb->addPermanentWidget(e);sb->addPermanentWidget(b);sb->showMessage("D.T.Software"); }參考資料:
總結(jié)
以上是生活随笔為你收集整理的Qt中的QMainWindow的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。