Jupyter AI

20 PyQt5小白教程之常用组件:按钮、文本框、标签

📅 发表日期: 2024年8月10日

分类: 🖥️PyQt5 必备

👁️阅读: --

在上篇中,我们介绍了PyQt5的常用组件及其基本特性。本篇将深入探讨三个重要的组件:按钮文本框标签。理解和使用这些组件是构建应用程序的基础。接下来,我们将通过示例代码,来学习如何创建和使用这些组件。

1. 按钮

按钮是用户界面中最常见的输入组件之一。它通常用于执行某个特定的动作,例如提交表单或触发事件。以下是一个创建基本按钮的示例:

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

# 定义一个简单的窗口
class MyApp(QWidget):
    def __init__(self):
        super().__init__()

        # 初始化按钮并连接信号
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('PyQt5 按钮示例')
        self.setGeometry(100, 100, 300, 200)
        
        # 创建按钮
        btn = QPushButton('点击我', self)
        btn.clicked.connect(self.on_click)  # 连接点击事件

        # 布局管理
        layout = QVBoxLayout()
        layout.addWidget(btn)
        self.setLayout(layout)

    def on_click(self):
        print("按钮被点击了!")

# 运行应用程序
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())

在这个示例中,我们创建了一个窗口,并添加了一个按钮。当按钮被点击时,会在控制台输出一条消息。

2. 文本框

文本框用于接收用户输入。以下是一个创建文本框的示例,演示如何获取用户输入:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('PyQt5 文本框示例')
        self.setGeometry(100, 100, 300, 200)

        # 标签和文本框
        self.label = QLabel('输入内容:', self)
        self.textbox = QLineEdit(self)

        # 提交按钮
        btn = QPushButton('提交', self)
        btn.clicked.connect(self.on_submit)

        # 布局管理
        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.textbox)
        layout.addWidget(btn)
        self.setLayout(layout)

    def on_submit(self):
        # 获取文本框中的内容
        text = self.textbox.text()
        print(f"你输入的内容是: {text}")

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

在这个示例中,我们添加了一个QLineEdit文本框,用户可以在此输入内容。点击“提交”按钮后,程序会打印出用户输入的内容。

3. 标签

标签用于显示文本或图像,通常用于为其他组件提供说明或提供其他信息。以下示例展示了标签的基本用法:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QLineEdit

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('PyQt5 标签示例')
        self.setGeometry(100, 100, 300, 200)

        self.label = QLabel('请输入你的名字:', self)
        self.textbox = QLineEdit(self)
        self.response_label = QLabel('', self)  # 用于显示反馈信息

        btn = QPushButton('确认', self)
        btn.clicked.connect(self.on_confirm)

        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.textbox)
        layout.addWidget(btn)
        layout.addWidget(self.response_label)  # 将反馈标签添加到布局

        self.setLayout(layout)

    def on_confirm(self):
        name = self.textbox.text()
        self.response_label.setText(f'你好, {name}!')  # 更新标签内容

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

这一示例添加了一个标签用于说明输入框的用途,并在用户点击“确认”按钮后,使另一个标签显示用户输入的名称,形成了交互反馈。

总结

在本篇中,我们学习了按钮文本框标签的基本用法,并通过代码示例演示了它们的创建和交互。这些组件是构建用户界面的基础,在后续的组合控件使用中,它们将更加重要。下一篇,我们将探讨如何将这些组件组合成更复杂的控件,以提升用户体验。希望大家在学习中有所收获!