一、PyQt简介
PyQt是Python下一个非常流行的跨平台GUI库,使用它能够快速地创建出强大的GUI程序。PyQt是由Riverbank Computing Limited公司出品的,使用著名的Qt库作为它的GUI组件,并且在Python下提供了完整的Qt库接口,让开发者能够充分利用Qt所提供的一系列强大的特性。而且,PyQt在开发上有非常完备的文档支持,在Stack Overflow上也有大量的优秀回答。
二、安装PyQt5
要使用PyQt5,首先必须要安装它。PyQt5在Windows,Linux和OS X上都有相应的安装包,可以在PyQt官网上下载。
在Windows上,可以用pip安装PyQt5。以管理员身份运行cmd,执行以下命令:
pip install PyQt5
三、PyQt入门
下面我们来看一个最简单的PyQt5示例,它创建了一个应用窗口,上面有一个标签和一个按钮。按钮按下后,标签中显示“One More Time”。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lbl = QLabel('Press the button for one more time!', self)
lbl.move(25, 20)
btn = QPushButton('Quit', self)
btn.clicked.connect(QApplication.instance().quit)
btn.move(100, 50)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('One More Time')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
四、PyQt5组件
PyQt5提供了很多强大的组件,下面我们介绍其中的几个。
(一)QLabel
QLabel是一个文本标签,可以用来显示文本、图片、超链接等。
在下面的例子中,我们使用QLabel显示了一个静态文本。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lbl = QLabel('Hello, PyQt5 in Python!', self)
lbl.move(15, 10)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Hello')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
(二)QPushButton
QPushButton是一个按钮控件,可以用来执行一些动作或者退出应用。下面的例子中,我们添加了一个按钮,点击按钮后,程序退出。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn = QPushButton('Quit', self)
btn.clicked.connect(QApplication.instance().quit)
btn.resize(btn.sizeHint())
btn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit Button')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
(三)QLineEdit
QLineEdit是一个单行编辑器控件,可以用来输入或显示文本。
下面的例子中,我们创建一个输入框,并把输入框中的文本显示到标签中。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lbl = QLabel(self)
lbl.setText('Please Enter Your Name:')
lbl.move(20, 20)
self.qle = QLineEdit(self)
self.qle.move(20, 50)
self.qle.textChanged[str].connect(lambda text: lbl.setText(f'Hello {text}!'))
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('QLineEdit')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
(四)QComboBox
QComboBox是一个下拉列表控件,可以让用户从列表中选择一个选项。下面的例子中,我们创建了一个下拉列表,并将选项显示在标签中。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QComboBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lbl = QLabel(self)
lbl.move(20, 20)
combo = QComboBox(self)
combo.move(20, 50)
combo.addItem('Python')
combo.addItem('C++')
combo.addItem('Java')
combo.addItem('JavaScript')
combo.activated[str].connect(lambda text: lbl.setText(f'You Selected: {text}!'))
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('QComboBox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
五、总结
通过本文,我们学习了如何使用PyQt5创建GUI程序,在此过程中学习了几个PyQt的基本组件,并编写了几个简单的示例。不仅如此,PyQt5还提供了大量的样式和主题,让我们可以轻松地修改控件的外观。如果想要深入学习PyQt5,建议阅读完整的文档和示例,掌握更多功能和知识。
原创文章,作者:RQSM,如若转载,请注明出处:https://www.506064.com/n/144195.html
微信扫一扫
支付宝扫一扫