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