PyQt5 教程 - 基本窗口
PyQt5 基本窗口
我们将在 PyQt5 中创建一个基本窗口。
import sys
from PyQt5 import QtWidgets
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
windowExample.setWindowTitle('Basic Window Example')
windowExample.show()
sys.exit(app.exec_())
basicWindow()
from PyQt5 import QtWidgets
它导入了 QtWidgets
模块,以便我们可以使用图形用户界面。
app = QtWidgets.QApplication(sys.argv)
这创建一个可以来用事件循环的应用程序对象。
windowExample = QtWidgets.QWidget()
然后我们需要创建一个 QtWidget
,因为我们将使用它作为我们的顶级窗口,它已经有了所需要的一切元素。
windowExample.setWindowTitle('Basic Window Example')
setWindowTitle
将为窗口设置标题,我们可以在需要时调用它。
windowExample.show()
这语句需要用来显示窗口。
sys.exit(app.exec_())
我们需要使用 app.exec _()
函数启动该事件循环。
如果我们不这样做,程序将直接运行,因为它不会继续自行运行下去。这里的事件循环正在等待我们在那里运行的事件。
basicWindow()
现在我们将把所有这些放在一个可以被调用来启动窗口运行的函数中。
PyQt5 更改窗口大小
如果我们想改变窗口的大小,我们可以使用窗口控件的 setGeometry()
方法。
import sys
from PyQt5 import QtWidgets
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
windowExample.setGeometry(0, 0, 400, 400)
windowExample.setWindowTitle('Basic Window Example')
windowExample.show()
sys.exit(app.exec_())
basicWindow()
windowExample.setGeometry(0, 0, 400, 400)
setGeometry()
方法将 4 个整数作为输入参数
- X 坐标
- Y 坐标
- 框架的宽度
- 框架的高度
因此,示例窗口大小为 400 x 400
像素。
PyQt5 添加窗口图标
import sys
from PyQt5 import QtWidgets, QtGui
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
windowExample.setWindowTitle('Basic Window Example')
windowExample.setWindowIcon(QtGui.QIcon("python.jpg"))
windowExample.show()
sys.exit(app.exec_())
basicWindow()
windowExample.setWindowIcon(QtGui.QIcon("python.jpg"))
它将窗口图标设置为 python.jpg
。setWindowIcon
方法的参数是来自 QtGui
模块的 QIcon
对象。
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn