第三章 - 创建一个空QMainWindow#

现在您可以思考如何将数据显示在 UI 中。QMainWindow 为 GUI 应用程序提供了一个方便的结构,例如菜单栏和状态栏。以下图像显示了 QMainWindow 提供的布局

QMainWindow layout

在这种情况下,让应用程序继承自 QMainWindow,并添加以下 UI 元素

  • 一个“文件”菜单以打开文件对话框。

  • 一个“退出”菜单以关闭窗口。

  • 当应用程序启动时在状态栏上的状态消息。

此外,您可以定义窗口的固定大小或根据您当前具有的分辨率调整它。在以下片段中,您将看到窗口大小是根据可用的屏幕宽度(80%)和高度(70%)定义的。

注意

您可以使用其他 Qt 元素(如 QMenuBar、QWidget 和 QStatusBar)实现类似的结构。请参阅 QMainWindow 布局以获得指导。

 1from PySide6.QtCore import Slot
 2from PySide6.QtGui import QAction, QKeySequence
 3from PySide6.QtWidgets import QMainWindow
 4
 5
 6class MainWindow(QMainWindow):
 7    def __init__(self):
 8        QMainWindow.__init__(self)
 9        self.setWindowTitle("Eartquakes information")
10
11        # Menu
12        self.menu = self.menuBar()
13        self.file_menu = self.menu.addMenu("File")
14
15        # Exit QAction
16        exit_action = QAction("Exit", self)
17        exit_action.setShortcut(QKeySequence.Quit)
18        exit_action.triggered.connect(self.close)
19
20        self.file_menu.addAction(exit_action)
21
22        # Status Bar
23        self.status = self.statusBar()
24        self.status.showMessage("Data loaded and plotted")
25
26        # Window dimensions
27        geometry = self.screen().availableGeometry()
28        self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)

尝试运行脚本以查看您使用它的输出。