日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)

發布時間:2025/3/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://doc.qt.io/qtforpython/PySide2/QtWidgets/QMainWindow.html?highlight=qmainwindow#PySide2.QtWidgets.QMainWindow

繼承關系

細節描述

Qt主窗口框架

主窗口提供了用于構建應用程序用戶界面的框架。 Qt具有用于主窗口管理的QMainWindow及其相關類。 QMainWindow有其自己的布局,您可以在其中添加QToolBar,QDockWidget,QMenuBar和QStatusBar。 布局具有可被任何類型的小部件占據的中心區域。 您可以在下面看到布局的圖像。

注意:
不支持創建沒有中央窗口小部件的主窗口。 您必須有一個中央小部件,即使它只是一個占位符。

創建主窗口組件
中央小部件通常是標準的Qt小部件,例如QTextEdit或QGraphicsView。 自定義窗口小部件也可以用于高級應用程序。 您可以使用setCentralWidget()設置中央窗口小部件。

主窗口具有單個(SDI)或多個(MDI)文檔界面。 通過使用QMdiArea作為中央窗口小部件,可以在Qt中創建MDI應用程序。

現在,我們將檢查可以添加到主窗口中的每個其他小部件。 我們提供有關如何創建和添加它們的示例。

創建菜單
Qt在QMenu中實現菜單,而QMainWindow將其保留在QMenuBar中。 QAction被添加到菜單,將其顯示為菜單項。

您可以通過調用menuBar()將新菜單添加到主窗口的菜單欄中,該菜單返回窗口的QMenuBar,然后使用addMenu()添加菜單。

QMainWindow帶有一個默認的菜單欄,但是您也可以使用setMenuBar()自己設置一個菜單欄。 如果您希望實現自定義菜單欄(即不使用QMenuBar小部件),則可以使用setMenuWidget()進行設置。

下面是如何創建菜單的示例:(不是python代碼?)

void MainWindow::createMenus() {fileMenu = menuBar()->addMenu(tr("&File"));fileMenu->addAction(newAct);fileMenu->addAction(openAct);fileMenu->addAction(saveAct);

當主窗口接收到上下文菜單事件時,createPopupMenu()函數將創建彈出菜單。 默認實現會生成一個菜單,其中包含來自??啃〔考凸ぞ邫诘目蓹z查操作。 您可以為自定義菜單重新實現createPopupMenu()。

創建工具欄
工具欄在QToolBar類中實現。 使用addToolBar()將工具欄添加到主窗口。

您可以通過將工具欄分配給特定的ToolBarArea來控制它們的初始位置。 您可以通過插入工具欄分隔符來分割區域-將其視為文本編輯中的換行符-使用addToolBarBreak()或insertToolBarBreak()即可。 您還可以使用setAllowedAreas()和setMovable()限制用戶的放置。

工具欄圖標的大小可以使用iconSize()獲取。 大小取決于平臺; 您可以使用setIconSize()設置固定大小。 您可以使用setToolButtonStyle()更改工具欄中所有工具按鈕的外觀。

工具欄創建的示例如下:

void MainWindow::createToolBars() {fileToolBar = addToolBar(tr("File"));fileToolBar->addAction(newAct);

創建Dock小部件
Dock小部件在QDockWidget類中實現。 ??啃〔考强梢酝?吭谥鞔翱谥械拇翱凇?您可以使用addDockWidget()將停靠小部件添加到主窗口。

DockWidgetArea枚舉提供了四個停靠小部件區域:左,右,頂部和底部。 您可以使用setCorner()指定哪個??看翱谛〔考^域應占據該區域重疊的角。 默認情況下,每個區域只能包含一行(垂直或水平)停靠小部件,但是如果使用setDockNestingEnabled()啟用嵌套,則可以在任一方向添加停靠小部件。

兩個底座窗口小部件也可以彼此堆疊。 然后,使用QTabBar選擇應顯示的窗口小部件。

我們提供一個示例,說明如何創建??看翱谛〔考⑵涮砑拥街鞔翱?#xff1a;

dockWidget = QDockWidget(tr("Dock Widget"), self) dockWidget.setAllowedAreas(Qt.LeftDockWidgetArea |Qt.RightDockWidgetArea) dockWidget.setWidget(dockWidgetContents) addDockWidget(Qt.LeftDockWidgetArea, dockWidget)

狀態欄
您可以使用setStatusBar()設置狀態欄,但是第一次調用statusBar()(會返回主窗口的狀態欄)時會創建一個狀態欄。 有關如何使用它的信息,請參見QStatusBar。

存儲狀態
QMainWindow可以使用saveState()存儲其布局狀態; 以后可以使用restoreState()檢索它。 它是所存儲的工具欄和??啃〔考奈恢煤痛笮?#xff08;相對于主窗口的大小)。

See alsoQMenuBarQToolBarQStatusBarQDockWidgetApplication ExampleDock Widgets ExampleMDI Example SDI Example Menus Example class QMainWindow([parent=None[, flags=Qt.WindowFlags()]])? param parent QWidgetparam flags WindowFlags

構造一個具有給定父對象和指定窗口小部件標志的QMainWindow。

QMainWindow設置Window標志本身,因此將始終被創建為頂級窗口小部件。

參考文章:python PyQt5中文教程?【第五節】PyQt5事件(Event)和信號(信號槽 Signals & slots)

函數

statusBar()

PySide2.QtWidgets.QMainWindow.statusBar()? Return type QStatusBar

返回主窗口的狀態欄。 如果狀態欄不存在,則此函數創建并返回一個空的狀態欄。

See alsosetStatusBar()

總結

以上是生活随笔為你收集整理的python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。