一、安装PyQt5模块
在开始编写PyQt5程序之前,我们需要安装PyQt5模块。使用pip工具可轻松完成安装。
$ pip install PyQt5
二、创建主窗口
在PyQt5中,创建一个主窗口可以使用QMainWindow类,它是窗口的基类。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Example')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
三、添加组件
在创建主窗口后,我们需要添加一些组件,例如按钮、标签、文本框等等。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QLineEdit
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Example')
self.btn = QPushButton('Button', self)
self.btn.move(20, 20)
self.btn.clicked.connect(self.button_click)
self.lbl = QLabel('Label', self)
self.lbl.move(20, 60)
self.txt = QLineEdit('Text', self)
self.txt.move(20, 100)
def button_click(self):
self.lbl.setText('Button Clicked')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
四、布局管理器
为了使界面更加美观,我们可以使用布局管理器来管理组件的位置和大小。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QLineEdit, QVBoxLayout, QWidget
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Example')
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
vbox = QVBoxLayout(central_widget)
self.btn = QPushButton('Button', central_widget)
vbox.addWidget(self.btn)
self.btn.clicked.connect(self.button_click)
self.lbl = QLabel('Label', central_widget)
vbox.addWidget(self.lbl)
self.txt = QLineEdit('Text', central_widget)
vbox.addWidget(self.txt)
def button_click(self):
self.lbl.setText('Button Clicked')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
五、使用QMessageBox
QMessageBox是一个弹窗,用于显示消息和询问用户。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Example')
self.btn = QPushButton('Button', self)
self.btn.move(20, 20)
self.btn.clicked.connect(self.button_click)
def button_click(self):
reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())