<font style="color:rgb(37, 37, 37);">QMainWindow</font>
,它提供了一些有用的通用界面元素,例如工具栏和菜单。这些将在后续教程中更详细地探讨。
安装库
pip install pyqt5
pip install pyqt5-tools
创建单组件应用
在项目的根目录中创建一个空白文件app.py
, 输入如下代码
# 从安装的PyQt5的子库QtWidgets中导入应用类和组件类
from PyQt5.QtWidgets import QApplication,QWidget
import sys
# 对于每一个应用来说都是是一个QApplication的实例, 在传入sys.argv参数后
# 意味着当前应用接受命令行信息,如果不接受的话可以通过QApplication([])实例化一个app
app = QApplication(sys.argv)
# 基于QWidgets创建一个window组件
window = QWidget()
# 启动时开启
window.show()
# 启动应用的event loop
app.exec()
启动app
python3 app.py
from PyQt5.QtWidgets import QApplication,QPushButton
import sys
app = QApplication(sys.argv)
# 尝试使用别的组件创建window
window = QPushButton()
window.show()
app.exec()
什么是Event Loop?
上面的案例中我们提到一个概念Event Loop
,那么什么是Event Loop
对于每一个Qt应用来说核心是QApplication
类,每一个应用都是一个QApplication
的实例。该实例维护了一个Event Loop
在用户的GUI交互和应用之间构建了交互桥梁。
既然我们在实际应用中有如此多的交互,所以日常的应用不大可能是单组件应用,上面的案例在实际开发中并不常见,而且我们需要对window做更多设置,通常用到的是QMainWindow
来创建多组件应用。
from PyQt5.QtWidgets import QApplication,QMainWindow,QPushButton
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("教学应用")
button = QPushButton("提交")
# 将按钮设置在窗口的中心部位
self.setCentralWidget(button)
# 设置window默认宽高
self.setFixedSize(600,300)
# 设置window最大宽高
self.setMaximumSize(800,400)
# 设置window最小宽高
self.setMinimumSize(200,100)
app =QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()