QInputDialog 📝
在 PyQt 中,QInputDialog 是一个用于收集用户输入的对话框。它可以用于获取文本、数字、选项等输入,并将用户输入的值返回到父类或主窗口中。
1. 基本用法 🛠️
QInputDialog 提供了多种静态方法来获取不同类型的输入:
-
文本输入:
QInputDialog.getText(parent, title, label) -
整数输入:
QInputDialog.getInt(parent, title, label, value, min, max, step) -
浮点数输入:
QInputDialog.getDouble(parent, title, label, value, min, max, decimals) -
选项输入:
QInputDialog.getItem(parent, title, label, items, current, editable)
这些方法会返回一个元组 (value, ok),其中:
value是用户输入的值。ok是一个布尔值,表示用户是否点击了“确定”按钮。
2. 示例:将用户输入返回到父类 👨💻
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QInputDialog, Qt
import sys
from PyQt5.QtCore import Qt
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QInputDialog 示例')
self.setGeometry(100, 100, 300, 200)
# 创建一个布局
layout = QVBoxLayout()
# 创建一个按钮,用于触发输入对话框
self.btn = QPushButton('点击输入', self)
self.btn.clicked.connect(self.showInputDialog)
# 创建一个标签,用于显示用户输入
self.label = QLabel('用户输入将显示在这里', self)
self.label.setAlignment(Qt.AlignCenter)
# 将按钮和标签添加到布局中
layout.addWidget(self.btn)
layout.addWidget(self.label)
# 设置窗口的布局
self.setLayout(layout)
def showInputDialog(self):
# 使用 QInputDialog 获取文本输入
text, ok = QInputDialog.getText(self, '输入对话框', '请输入你的名字:')
# 如果用户点击了“确定”按钮
if ok:
# 将用户输入的值显示在标签中
self.label.setText(f'你输入的名字是: {text}')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
3. 代码说明 💡
QInputDialog.getText:
- 用途:用于获取用户输入的文本。
- 返回值:返回一个元组
(text, ok),其中text是用户输入的字符串,ok是用户是否点击了“确定”按钮。 - 应用:
- 用户输入的值通过
text变量获取。 - 如果用户点击了“确定”按钮(
ok为True),则将输入的值显示在QLabel中。
- 用户输入的值通过
布局管理:
- 使用
QVBoxLayout将按钮和标签垂直排列,以便于界面布局管理。
4. 其他输入类型示例 🎨
除了文本输入,QInputDialog 还支持其他类型的输入。以下是其他输入类型的示例:
获取整数输入
def showInputDialog(self):
number, ok = QInputDialog.getInt(self, '输入对话框', '请输入一个整数:', 10, 0, 100, 1)
if ok:
self.label.setText(f'你输入的整数是: {number}')
获取浮点数输入
def showInputDialog(self):
number, ok = QInputDialog.getDouble(self, '输入对话框', '请输入一个浮点数:', 0.0, 0.0, 100.0, 2)
if ok:
self.label.setText(f'你输入的浮点数是: {number}')
获取选项输入
def showInputDialog(self):
items = ['选项1', '选项2', '选项3']
item, ok = QInputDialog.getItem(self, '输入对话框', '请选择一个选项:', items, 0, False)
if ok:
self.label.setText(f'你选择的选项是: {item}')
5. 总结🎉
-
QInputDialog 是一个简单易用的工具,可以快速获取用户输入。
-
通过
getText、getInt、getDouble和getItem等方法,可以获取不同类型的输入。 -
用户输入的值可以通过返回值传递到父类中,并在界面中显示或进一步处理。

3万+

被折叠的 条评论
为什么被折叠?



