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类来实现一个窗口,并且添加了菜单栏、工具栏和状态栏。在实际开发中,我们可以根据需求添加更多的功能,让窗口更加实用、美观。