【PyQt】QInputDialog 是一个用于收集用户输入的对话框。

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 变量获取。
    • 如果用户点击了“确定”按钮(okTrue),则将输入的值显示在 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 是一个简单易用的工具,可以快速获取用户输入。

  • 通过 getTextgetIntgetDoublegetItem 等方法,可以获取不同类型的输入。

  • 用户输入的值可以通过返回值传递到父类中,并在界面中显示或进一步处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanks66

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值