翻譯|使用教程|編輯:龔雪|2022-04-14 10:40:34.183|閱讀 324 次
概述:本文主要為大家介紹Qt Widget用戶界面下的應(yīng)用程序主窗口,歡迎大家下載相關(guān)組件體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt技術(shù)交流群:166830288 歡迎一起進(jìn)群討論
Qt Widget 是桌面環(huán)境中典型的用戶界面元素,這些小部件很好地集成到底層平臺(tái),在 Windows、Linux 和 macOS 上提供原生外觀。 這些小部件成熟且具有豐富的用戶界面元素,適用于大多數(shù)傳統(tǒng)用戶界面。 與 Qt Quick 相比,這些小部件用于創(chuàng)建大型桌面應(yīng)用程序,不太適合創(chuàng)建具有流暢界面的以觸摸為中心的應(yīng)用程序。
Main Window Classes概述
這些類提供了典型的現(xiàn)代主應(yīng)用程序窗口所需的一切,例如主窗口本身、菜單和工具欄、狀態(tài)欄等。
Main Window Classes
Qt 提供了以下類來(lái)管理主窗口和相關(guān)的用戶界面組件:
示例代碼
使用 很簡(jiǎn)單,通常我們繼承 QMainWindow 并在 QMainWindow 構(gòu)造函數(shù)中設(shè)置菜單、工具欄和停靠窗口小部件。
要將菜單欄添加到主窗口,只需創(chuàng)建菜單,并將它們添加到主窗口的菜單欄。 請(qǐng)注意,() 函數(shù)將在第一次調(diào)用時(shí)自動(dòng)創(chuàng)建菜單欄,您還可以調(diào)用 () 來(lái)在主窗口中使用自定義菜單欄。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ... newAct = new QAction(tr("&New"), this); newAct->setShortcuts(QKeySequence::New); newAct->setStatusTip(tr("Create a new file")); connect(newAct, &QAction::triggered, this, &MainWindow::newFile); openAct = new QAction(tr("&Open..."), this); openAct->setShortcuts(QKeySequence::Open); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, &QAction::triggered, this, &MainWindow::open); ...
一旦創(chuàng)建了動(dòng)作,我們就可以將它們添加到主窗口組件中。 首先,我們將它們添加到彈出菜單中:
fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); ... fileMenu->addSeparator(); ...
和類使用 Qt 的動(dòng)作系統(tǒng)來(lái)提供一致的 API。 在上面的代碼中,使用 () 函數(shù)將一些現(xiàn)有操作添加到文件菜單中。 QToolBar 也提供了這個(gè)功能,可以很容易地在主窗口的不同部分重用動(dòng)作,這避免了不必要的重復(fù)工作。
創(chuàng)建一個(gè)工具欄作為主窗口的子窗口,并向其中添加所需的操作:
fileToolBar = addToolBar(tr("File")); fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); ... fileToolbar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea); addToolBar(Qt::TopToolBarArea, fileToolbar);
在這個(gè)例子中,dock 小部件只能放置在左右停靠區(qū)域中,并且最初放置在左側(cè)停靠區(qū)域中。
QMainWindow API 允許程序員自定義哪些停靠小部件區(qū)域占據(jù)停靠小部件區(qū)域的四個(gè)角。 如果需要,可以使用 QMainWindow::setCorner() 函數(shù)更改默認(rèn)值:
setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
下圖顯示了上述代碼生成的配置。 請(qǐng)注意,左右停靠小部件將占據(jù)此布局中主窗口的上角和下角。
一旦設(shè)置了所有主窗口組件,就可以使用類似于以下的代碼創(chuàng)建和安裝中央小部件:
QWidget *centralWidget = new QWidget(this); setCentralWidget(centralWidget);
Qt技術(shù)交流群:166830288 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)