PyQt6中QMainWindow組件的使用詳解
如果把QWidget比做一間毛坯房,那QMainWindow就是在毛坯房的基礎上劃分了五個房間:菜單欄、工具欄、中央部件、??看翱?、狀態(tài)欄 ,各個房間都有一些裝飾工具,能夠更好、更快的布置房間。
1. QMainWindow 組件概述
QMainWindow 提供了一個標準的應用程序窗口結(jié)構(gòu),包含多個重要的部件:
- 中央部件 (Central Widget):這是 QMainWindow 的核心區(qū)域,通常顯示應用的大部分內(nèi)容??梢酝ㄟ^
setCentralWidget(widget)方法來設置中央部件。 - 菜單欄 (Menu Bar):通過
menuBar()方法創(chuàng)建應用程序的菜單,允許添加菜單項。 - 工具欄 (Tool Bar):通過
addToolBar()方法將工具欄添加到窗口。 - 狀態(tài)欄 (Status Bar):通過
statusBar()方法在窗口底部顯示狀態(tài)信息。 - ??看翱?(Dock Widgets):通過
addDockWidget()向主窗口添加可??看翱?,增加應用界面的靈活性。
2. 使用 QMainWindow
import sys
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QAction
from PyQt6.QtWidgets import *
class AppMainWindow(QMainWindow):
def __init__(self):
super(AppMainWindow, self).__init__()
self.setWindowTitle("QMainWindow 案例")
self.resize(800, 600)
# 中央?yún)^(qū)域
self.init_central()
# 菜單欄
self.init_menubar()
# 工具欄
self.init_toolbar()
# 狀態(tài)欄
self.init_statusbar()
# ??看翱?
self.init_dock()
# 信號-槽
self.init_signal()
def init_central(self):
self.central_label = QLabel("我是中央部件")
self.setCentralWidget(self.central_label)
def init_menubar(self):
menubar = self.menuBar()
# 創(chuàng)建菜單
file_menu = menubar.addMenu("文件")
# 添加菜單項
exit_action = QAction("退出", self)
exit_action.triggered.connect(self.close)
file_menu.addAction(exit_action)
def init_toolbar(self):
tool_bar = QToolBar("工具欄")
# 添加工具到工具欄
exit_action = QAction("退出",self)
exit_action.triggered.connect(self.close)
tool_bar.addAction(exit_action)
self.addToolBar(tool_bar)
def init_statusbar(self):
status_bar = QStatusBar()
status_bar.showMessage("這是一個狀態(tài)欄")
self.setStatusBar(status_bar)
def init_dock(self):
dock_widget = QDockWidget("停留窗口", self)
self.list_widget = QListWidget()
for i in range(5):
item = QListWidgetItem(f'item {i}')
self.list_widget.addItem(item)
dock_widget.setWidget(self.list_widget)
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, dock_widget)
def init_signal(self):
# 雙擊 listwidget內(nèi)容
self.list_widget.itemDoubleClicked.connect(self.show_central_msg)
def show_central_msg(self):
current_item = self.list_widget.currentItem()
if current_item.text():
self.central_label.setText(current_item.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
window = AppMainWindow()
window.show()
sys.exit(app.exec())
3. QMainWindow的進階功能
3.1. 窗口菜單和工具欄的自定義
你可以為菜單項和工具欄按鈕設置快捷鍵,以及動態(tài)更新狀態(tài)欄信息。
3.2. 多文檔界面 (MDI) 支持
QMainWindow 支持通過 QMdiArea 和 QMdiSubWindow 來創(chuàng)建多文檔界面(MDI)。
3.3. 事件處理
QMainWindow 支持處理常見的事件,如 closeEvent(), resizeEvent(),以便在事件發(fā)生時執(zhí)行特定操作。
4. 總結(jié)
QMainWindow 是構(gòu)建桌面應用程序的基礎,它通過提供多個標準窗口部件使得開發(fā)者可以專注于應用的功能實現(xiàn)。無論是菜單欄、工具欄、狀態(tài)欄還是??看翱?,QMainWindow 都能輕松構(gòu)建一個專業(yè)級的應用程序界面。
到此這篇關于PyQt6中QMainWindow組件的使用詳解的文章就介紹到這了,更多相關PyQt6 QMainWindow組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python語言中的重要函數(shù)對象用法小結(jié)
Python作為一種強大的編程語言,提供了多種高級函數(shù)對象,如lambda匿名函數(shù)、map()、reduce()函數(shù),以及迭代器和生成器的使用,本文給大家介紹Python語言中的重要函數(shù)對象用法,感興趣的朋友跟隨小編一起看看吧2024-09-09
Python函數(shù)默認參數(shù)常見問題及解決方案
這篇文章主要介紹了Python函數(shù)默認參數(shù)常見問題及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
Python數(shù)據(jù)分析庫pandas基本操作方法
下面小編就為大家分享一篇Python數(shù)據(jù)分析庫pandas基本操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python數(shù)據(jù)處理實戰(zhàn)(必看篇)
下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)處理實戰(zhàn)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
Python多進程入門、分布式進程數(shù)據(jù)共享實例詳解
這篇文章主要介紹了Python多進程入門、分布式進程數(shù)據(jù)共享,結(jié)合實例形式詳細分析了Python進程操作技巧數(shù)據(jù)共享相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下2019-06-06

