python GUI库图形界面开发之PyQt5窗口类QMainWindow详细

1. PyQt5是什么?

PyQt5是一个Python语言的常用GUI(图形用户界面)库,它实现了Qt5的所有功能,包括信号与槽机制,支持Python语言,封装了Qt5的所有功能,为开发者提供了一种方便快捷的方式来实现各种GUI应用程序。使用PyQt5可以方便地编写跨平台的GUI应用程序,无论是在Windows,OS X还是Linux上。

2. PyQt5窗口类QMainWindow

2.1 MainWindow类的作用

MainWindow是PyQt5中常用的窗口类,它提供了一个具有菜单栏、工具栏、状态栏等标准特性的主窗口。在mainwindow中,我们可以定义窗口的布局、添加菜单、工具栏以及状态栏等,让窗口具有更加丰富的功能。

2.2 MainWindow类的使用

在使用MainWindow类之前,我们需要导入PyQt5库,并定义一个MainWindow类。定义MainWindow类需要继承自QMainWindow类,并在构造函数中初始化窗口的一些基本属性:

from PyQt5.QtWidgets import QMainWindow

class MainWindow(QMainWindow):

def __init__(self):

super().__init__()

# 设置窗口标题

self.setWindowTitle('Main Window')

# 设置窗口大小

self.resize(800, 600)

在上面的代码中,我们定义了一个MainWindow类,继承自QMainWindow,然后在构造函数中设置了窗口的标题和大小。

2.3 添加菜单栏

在MainWindow中,我们可以通过调用menuBar()方法来获取菜单栏对象,并调用addMenu()方法来添加菜单项:

from PyQt5.QtWidgets import QMainWindow, QMenuBar, QMenu

from PyQt5.QtCore import Qt

class MainWindow(QMainWindow):

def __init__(self):

super().__init__()

# 设置窗口标题

self.setWindowTitle('Main Window')

# 设置窗口大小

self.resize(800, 600)

# 添加菜单栏

menubar = self.menuBar()

filemenu = menubar.addMenu('文件')

editmenu = menubar.addMenu('编辑')

在上面的代码中,我们调用menuBar()方法获取菜单栏对象,并调用addMenu()方法添加了文件和编辑两个菜单项。

2.4 添加工具栏

在MainWindow中,我们可以通过调用addToolBar()方法来添加工具栏:

from PyQt5.QtWidgets import QMainWindow, QToolBar

from PyQt5.QtGui import QIcon

class MainWindow(QMainWindow):

def __init__(self):

super().__init__()

# 设置窗口标题

self.setWindowTitle('Main Window')

# 设置窗口大小

self.resize(800, 600)

# 添加菜单栏

menubar = self.menuBar()

filemenu = menubar.addMenu('文件')

editmenu = menubar.addMenu('编辑')

# 添加工具栏

toolbar = self.addToolBar('工具栏')

new_action = QAction(QIcon('new.png'), '新建', toolbar)

open_action = QAction(QIcon('open.png'), '打开', toolbar)

save_action = QAction(QIcon('save.png'), '保存', toolbar)

toolbar.addAction(new_action)

toolbar.addAction(open_action)

toolbar.addAction(save_action)

在上面的代码中,我们调用addToolBar()方法添加了一个名为“工具栏”的工具栏,并在工具栏上添加了三个按钮,分别是“新建”、“打开”和“保存”按钮。

2.5 添加状态栏

在MainWindow中,我们可以通过调用statusBar()方法来获取状态栏对象,并调用showMessage()方法来显示消息:

from PyQt5.QtWidgets import QMainWindow

class MainWindow(QMainWindow):

def __init__(self):

super().__init__()

# 设置窗口标题

self.setWindowTitle('Main Window')

# 设置窗口大小

self.resize(800, 600)

# 添加菜单栏

menubar = self.menuBar()

filemenu = menubar.addMenu('文件')

editmenu = menubar.addMenu('编辑')

# 添加工具栏

toolbar = self.addToolBar('工具栏')

new_action = QAction(QIcon('new.png'), '新建', toolbar)

open_action = QAction(QIcon('open.png'), '打开', toolbar)

save_action = QAction(QIcon('save.png'), '保存', toolbar)

toolbar.addAction(new_action)

toolbar.addAction(open_action)

toolbar.addAction(save_action)

# 添加状态栏

statusbar = self.statusBar()

statusbar.showMessage('状态栏消息', 5000)

在上面的代码中,我们调用statusBar()方法获取状态栏对象,并调用showMessage()方法显示了一条消息。

2.6 结语

通过上述代码,我们了解了如何使用PyQt5的MainWindow类来实现一个窗口,并且添加了菜单栏、工具栏和状态栏。在实际开发中,我们可以根据需求添加更多的功能,让窗口更加实用、美观。

后端开发标签