PyQt5教程

  • Post category:Python

针对Python中的PyQt5模块,以下提供一份使用攻略:

PyQt5教程使用攻略

PyQt5简介

PyQt5是一个基于Qt框架的Python GUI库,它包含了大量的用于创建图形用户界面的组件和工具,支持多种操作系统包括Windows、Linux、Mac等等。

PyQt5环境搭建

在Windows系统上,可以通过以下命令安装PyQt5:

pip install PyQt5

PyQt5基本组件

PyQt5提供了常用的GUI组件,比如按钮、标签、文本框、列表等等。以下是几个常用的组件示例:

QLabel组件

QLabel组件用于显示文本或图像等内容,可以通过以下代码进行创建:

from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])
window = QWidget()
label = QLabel('Hello PyQt5!')
label.show()
window.show()
app.exec_()

QPushButton组件

QPushButton组件用于创建按钮并响应用户的点击事件,可以通过以下代码进行创建:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

app = QApplication([])
window = QWidget()
button = QPushButton('Click me!')
button.show()
window.show()
app.exec_()

也可以为按钮添加点击事件的响应:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
button = QPushButton('Click me!')
layout.addWidget(button)
window.setLayout(layout)

def on_button_click():
    print('Button clicked!')

button.clicked.connect(on_button_click)
window.show()
app.exec_()

PyQt5示例代码

以下是两个示例代码,用于展示PyQt5的应用场景:

1. 图片查看器

该示例代码演示如何使用PyQt5创建一个简单的图片查看器。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmap

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('图片查看器')
        self.setGeometry(100, 100, 300, 200)

        label = QLabel(self)
        pixmap = QPixmap('example.jpg')
        label.setPixmap(pixmap)
        label.setGeometry(50, 50, 200, 100)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

2. 主题切换器

该示例代码演示如何使用PyQt5创建一个主题切换器,用户可以选择不同的主题进行应用。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QRadioButton, QLabel, QButtonGroup, QPushButton

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('主题切换器')
        self.setGeometry(100, 100, 300, 200)

        vbox = QVBoxLayout()
        hbox = QHBoxLayout()

        label = QLabel('选择主题:')
        vbox.addWidget(label)

        light_theme_button = QRadioButton('浅色主题')
        light_theme_button.setChecked(True)
        hbox.addWidget(light_theme_button)

        dark_theme_button = QRadioButton('深色主题')
        hbox.addWidget(dark_theme_button)

        hbox.addStretch(1)
        vbox.addLayout(hbox)

        button_group = QButtonGroup()
        button_group.addButton(light_theme_button, 1)
        button_group.addButton(dark_theme_button, 2)

        apply_button = QPushButton('应用')
        apply_button.clicked.connect(self.on_apply_button_click)
        vbox.addWidget(apply_button)

        self.setLayout(vbox)

    def on_apply_button_click(self):
        button_group = self.findChildren(QButtonGroup)[0]
        selected_button = button_group.checkedId()

        if selected_button == 1:
            self.setStyleSheet("background-color: white; color: black")
        elif selected_button == 2:
            self.setStyleSheet("background-color: black; color: white")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

以上就是PyQt5教程的使用攻略,希望能够对你有所帮助。