20 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_())
这一示例添加了一个标签用于说明输入框的用途,并在用户点击“确认”按钮后,使另一个标签显示用户输入的名称,形成了交互反馈。
总结
在本篇中,我们学习了按钮
、文本框
和标签
的基本用法,并通过代码示例演示了它们的创建和交互。这些组件是构建用户界面的基础,在后续的组合控件使用中,它们将更加重要。下一篇,我们将探讨如何将这些组件组合成更复杂的控件,以提升用户体验。希望大家在学习中有所收获!