PyQt6 QInputDialog输入对话框控件

锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计50条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

QInputDialog类表示一个标准的输入对话框,该对话框由一个文本框(或者数字选择框,或者下拉列表框)和两个按钮(OK按钮和Cancel按钮)组成,它可以与用户进行简单的交互,例如,在主窗口中获取输入对话框中输入或者选择的值。

QInputDialog类的常用方法:

getText()方法,显示一个用于输入字符串的文本编辑框。

getText()方法的参数及返回值

参数说明
QWidget父窗口对象
dglTitleQInputDialog的标题
txtLabelQInputDialog内部显示的文本
echoMode文本编辑框内容的显示方式
defaultlnput文本编辑框默认显示内容
返回值一个元组,其中text表示文本编辑框内的字符串,flag表示是否正常返回

getItem()方法,显示一个ComboBox下拉列表控件,用户可从中选择数据。

getItem()方法的参数及返回值

参数说明
QWidget父窗口对象
dglTitleQInputDialog的标题
txtLabelQlnputDialog内部显示的文本
itemsComboBox组件的内容列表
curIndex默认显示ComboBox 组件哪一个索引的内容
editableComboBox组件是否可被编辑
返回值一个元组,其中 text 表示从ComboBox下拉列表中选择的内容,flag表示是否正常返回

getInt()方法。显示一个用于输入整数的编辑框,显示的是SpinBox控件。

getInt()方法的参数及返回值

参数说明
QWidget父窗口对象
dglTitleQInputDialog的标题
txtLabelQInputDialog内部显示的文本
defaultValueSpinBox控件默认值
minValueSpinBox控件最小值
maxValueSpinBox控件最大值
stepValueSpinBox控件单步值
返回值一个元组,其中 inputValue表示SpinBox中选择的整数值,flag表示是否正常返回

getDouble()方法。显示一个用于输入浮点数的编辑框,显示的是DoubleSpinBox控件。

getDouble()方法的参数及返回值

UI生成参考代码:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(267, 220)
        self.formLayoutWidget = QtWidgets.QWidget(parent=Form)
        self.formLayoutWidget.setGeometry(QtCore.QRect(20, 10, 231, 191))
        self.formLayoutWidget.setObjectName("formLayoutWidget")
        self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
        self.formLayout.setContentsMargins(10, 10, 10, 0)
        self.formLayout.setHorizontalSpacing(10)
        self.formLayout.setVerticalSpacing(20)
        self.formLayout.setObjectName("formLayout")
        self.label = QtWidgets.QLabel(parent=self.formLayoutWidget)
        self.label.setObjectName("label")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label)
        self.lineEdit = QtWidgets.QLineEdit(parent=self.formLayoutWidget)
        self.lineEdit.setObjectName("lineEdit")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit)
        self.lineEdit_2 = QtWidgets.QLineEdit(parent=self.formLayoutWidget)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_2)
        self.label_2 = QtWidgets.QLabel(parent=self.formLayoutWidget)
        self.label_2.setObjectName("label_2")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_2)
        self.label_3 = QtWidgets.QLabel(parent=self.formLayoutWidget)
        self.label_3.setObjectName("label_3")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_3)
        self.lineEdit_3 = QtWidgets.QLineEdit(parent=self.formLayoutWidget)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_3)
        self.label_4 = QtWidgets.QLabel(parent=self.formLayoutWidget)
        self.label_4.setObjectName("label_4")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_4)
        self.lineEdit_4 = QtWidgets.QLineEdit(parent=self.formLayoutWidget)
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_4)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "姓名:"))
        self.label_2.setText(_translate("Form", "年龄:"))
        self.label_3.setText(_translate("Form", "班级:"))
        self.label_4.setText(_translate("Form", "分数:"))

Main测试代码:

"""
    python加载ui文件
    作者 : 小锋老师
    官网 : www.python222.com
"""
import sys

from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QLineEdit, QInputDialog
from PyQt6 import uic, QtGui


def getName(formLayoutWidget, name_input):
    name, ok = QInputDialog.getText(formLayoutWidget, "姓名", "请输入姓名", QLineEdit.EchoMode.Normal, "python222")
    if ok:
        name_input.setText(name)


def getGrade(formLayoutWidget, grade_input):
    grade, ok = QInputDialog.getItem(formLayoutWidget, "班级", "请选择班级", ('大一1班', '大一2班', '大一3班'), 0,
                                     False)
    if ok:
        grade_input.setText(grade)


def getAge(formLayoutWidget, age_input):
    age, ok = QInputDialog.getInt(formLayoutWidget, "年龄", "请选择年龄", 18, 1, 100, 1)
    if ok:
        age_input.setText(str(age))


def getScore(formLayoutWidget, score_input):
    score, ok = QInputDialog.getDouble(formLayoutWidget, "分数", "请选择分数", 98.5, 0, 100, 2)
    if ok:
        score_input.setText(str(score))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = uic.loadUi("./QInputDialog输入对话框控件.ui")
    formLayoutWidget = ui.formLayoutWidget
    name_input: QLineEdit = ui.lineEdit
    name_input.returnPressed.connect(lambda: getName(formLayoutWidget, name_input))

    grade_input: QLineEdit = ui.lineEdit_3
    grade_input.returnPressed.connect(lambda: getGrade(formLayoutWidget, grade_input))

    age_input: QLineEdit = ui.lineEdit_2
    age_input.returnPressed.connect(lambda: getAge(formLayoutWidget, age_input))

    score_input: QLineEdit = ui.lineEdit_4
    score_input.returnPressed.connect(lambda: getScore(formLayoutWidget, score_input))

    ui.show()

    sys.exit(app.exec())

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值