您的位置:

Python PyQt5图形界面编程教程,快速掌握PyQt5开发技巧

一、安装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_())