共计 1383 个字符,预计需要花费 4 分钟才能阅读完成。
源代码下载:learnpyqt.py
Qt 是一个用 C++ 实现的驰名跨平台软件开发框架。只需大量更改有时候甚至不须要更改代码就能在多个软硬件平台上运行,同时领有原生应用程序的性能和速度。
以下内容改编自 Aleksey Kholovchuk 编写的 C++ 版 QT 简介,并用 pyqt 重构原文代码,实现了局部雷同的性能。
import sys | |
from PyQt4 import QtGui | |
def window(): | |
# 创立利用对象 | |
app = QtGui.QApplication(sys.argv) | |
# 创立一个 widget,作为 label 的父控件 | |
w = QtGui.QWidget() | |
# 在 widget 中增加一个 label 子控件 | |
b = QtGui.QLabel(w) | |
# 设置 label 的文字 | |
b.setText("Hello World!") | |
# 设置 widget 的尺寸和地位 | |
w.setGeometry(100, 100, 200, 50) | |
b.move(50, 20) | |
# 设置窗口的题目 | |
w.setWindowTitle("PyQt") | |
# 显示 widget 及其所有子控件 | |
w.show() | |
# 上面让程序跑起来,这行代码会启动事件循环并阻塞直到应用程序退出。sys.exit(app.exec_()) | |
if __name__ == '__main__': | |
window() |
为了使用 pyqt 中一些更高级的性能,咱们须要开始学习应用其余控件。下文演示了如何弹出对话框,该对话框在用户确认操作或输出信息等状况下常常用到。
import sys | |
from PyQt4.QtGui import * | |
from PyQt4.QtCore import * | |
def window(): | |
app = QApplication(sys.argv) | |
w = QWidget() | |
# 创立一个按钮并增加到 widget 控件 w | |
b = QPushButton(w) | |
b.setText("Press me") | |
b.move(50, 50) | |
# 当按钮 b 被点击时调用 showdialog 函数 | |
# 留神函数调用时没有“()”,这样函数就能以对象的形式传入而非传入执行它所失去的返回值 | |
# 更多对于 pyqt 函数调用、传参等的内容见 pyqt 的信号机制 | |
b.clicked.connect(showdialog) | |
w.setWindowTitle("PyQt Dialog") | |
w.show() | |
sys.exit(app.exec_()) | |
# 对话框窗口创立函数 | |
# 当窗口中的按钮被点击时退出本程序 | |
def showdialog(): | |
d = QDialog() | |
b1 = QPushButton("ok", d) | |
b1.move(50, 50) | |
d.setWindowTitle("Dialog") | |
# 这里的模态实现了在对话框弹出时阻塞程序同时屏蔽父窗口 | |
d.setWindowModality(Qt.ApplicationModal) | |
# 当按钮被点击时整个过程将会完结 | |
b1.clicked.connect(sys.exit) | |
d.exec_() | |
if __name__ == '__main__': | |
window() |
有倡议?或者发现什么谬误?在 Github 上开一个 issue,或者发动 pull request!
原著 Nathan Hughes,并由 0 个好心人批改。
© 2022 Nathan Hughes
Translated by: kdxcxs lsvih imlonghao
本作品采纳 CC BY-SA 3.0 协定进行许可。
正文完