在这部分教程中我们将学习PyQt5的一些基本功能
一个简单的例子
这是一个只显示一个小窗口的简单示例。但我们可以对这个窗口进行一些操作,如调整尺寸,最大化或最小化。这需要编写很多代码,但有人已经完成了这个功能。因为它在多种程序中的通用性,所以不再需要重复编码。PyQt5是一个高级工具集。如果我们使用较低级的工具集进行编码,要实现这个功能最少也要上百行代码。
import sys
from PyQt5 import QtWidgets
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(250,150)
widget.setWindowTitle('simple')
widget.show()
sys.exit(app.exec_())
上面的代码会在屏幕上显示一个小窗体。
import sys
from PyQt5.QtWidgets import QApplication, QWidget
在这里我们导入了必要的模块。这些基本控件位于PyQt5.QtWidgets模块中。
app = QApplication(sys.argv)
每个PyQt5应用程序都需要创建一个application对象。sys.argv是从命令行传入的参数列表。Python脚本可以从shell中运行。这是一种控制脚本启动的方式。
widget = QtWidgets.QWidget()
控件QWidget是QtPy5中所有UI对象的基类。我们调用了QWidget的默认构造器。默认构造器没有parent参数。没有parent的控件称为窗体(window)。
widget.resize(250, 150)
resize()方法用于设置控件的尺寸。它宽250px高150px。
widget.move(300, 300)
move()方法将控件移动到坐标为x=300, y=300的位置
widget.setWindowTitle('Simple')
这里设置了窗体的标题。标题在标题栏中显示。
widget.show()
show()方法将控件显示在屏幕上。控件要先在内存中创建,然后在屏幕上显示。
sys.exit(app.exec_())
最后我们进入了application的主循环。事件处理从这里开始。主循环从窗体系统中接收事件,并将事件分发给控件。在调用exit()方法或主控件销毁时主循环会停止。sys.exit()方法确保可以干净地退出。系统可以感知到程序是如何退出的。
注意exec_()方法的下划线。由于exec是python中的关键字,所以使用exec_()。
图标
程序的图标是显示在标题栏左上角的一个小图像。接下来我们将介绍如何用PyQt5实现,这会用到一些新的API。
import sys
from PyQt5.QtGui import QIcon
from PyQt5 import QtWidgets
class Icon(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150