第3章 - 创建一个空的QMainWindow¶
你现在可以考虑在用户界面中展示你的数据。QMainWindow 为图形用户界面应用程序提供了一个方便的结构,例如菜单栏和状态栏。下图展示了 QMainWindow 提供的开箱即用的布局:

在这种情况下,让你的应用程序继承自 QMainWindow,并添加以下 UI 元素:
一个“文件”菜单,用于打开文件对话框。
“退出”菜单关闭窗口。
应用程序启动时状态栏上的状态消息。
此外,您可以为窗口定义固定大小或根据当前分辨率进行调整。在以下代码片段中,您将看到如何根据可用屏幕宽度(80%)和高度(70%)定义窗口大小。
注意
您可以使用其他Qt元素(如QMenuBar、QWidget和QStatusBar)实现类似的结构。请参考QMainWindow布局以获取指导。
1
2from PySide6.QtCore import Slot
3from PySide6.QtGui import QAction, QKeySequence
4from PySide6.QtWidgets import QMainWindow
5
6
7class MainWindow(QMainWindow):
8 def __init__(self):
9 QMainWindow.__init__(self)
10 self.setWindowTitle("Eartquakes information")
11
12 # Menu
13 self.menu = self.menuBar()
14 self.file_menu = self.menu.addMenu("File")
15
16 # Exit QAction
17 exit_action = QAction("Exit", self)
18 exit_action.setShortcut(QKeySequence.Quit)
19 exit_action.triggered.connect(self.close)
20
21 self.file_menu.addAction(exit_action)
22
23 # Status Bar
24 self.status = self.statusBar()
25 self.status.showMessage("Data loaded and plotted")
26
27 # Window dimensions
28 geometry = self.screen().availableGeometry()
29 self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
尝试运行脚本,看看你会得到什么输出。