当前位置: 首页 > news >正文

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, QtWidgetsclass 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.translateForm.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 sysfrom PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QLineEdit, QInputDialog
from PyQt6 import uic, QtGuidef 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.formLayoutWidgetname_input: QLineEdit = ui.lineEditname_input.returnPressed.connect(lambda: getName(formLayoutWidget, name_input))grade_input: QLineEdit = ui.lineEdit_3grade_input.returnPressed.connect(lambda: getGrade(formLayoutWidget, grade_input))age_input: QLineEdit = ui.lineEdit_2age_input.returnPressed.connect(lambda: getAge(formLayoutWidget, age_input))score_input: QLineEdit = ui.lineEdit_4score_input.returnPressed.connect(lambda: getScore(formLayoutWidget, score_input))ui.show()sys.exit(app.exec())

http://www.lryc.cn/news/263480.html

相关文章:

  • ASP.NET Core MVC依赖注入理解(极简个人版)
  • 基于SpringBoot+Vue实现的企业级微服务多租户多系统架构
  • 美光将于 2025 年推出 1γ DRAM,并在日本生产HBM
  • 【Docker】以service形式离线安装卸载的docker、compose服务
  • Dubbo RPC-Redis协议
  • 展开说说:Android之常用的延时执行策略
  • Jenkins在window下配置Android打包配置
  • 云原生系列2-GitLab和Jenkins
  • xcode无线真机调试详细图文步骤
  • EasyExcel合并相同内容单元格及动态标题功能的实现
  • 【论文解读】Comparing VVC, HEVC and AV1 using Objective and Subjective Assessments
  • 动态窗口法Dynamic Window Approach在动态环境中避障
  • 2023.12.15 FineBI与kettle
  • Python tkinter 初探Toplevel控件搭建父子窗口
  • SpringCloud源码探析(十二)-基于SpringBoot开发自定义中间件
  • 基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(一)
  • python实现贪吃蛇游戏
  • ios备忘录怎么导入华为 方法介绍
  • electron与cesium组件入门应用功能
  • Jenkins Docker Cloud在Linux应用开发CI中的实践
  • 502 Bad Gateway with nginx + apache + subversion + ssl
  • 【PostgreSQL内核学习(十八)—— 存储管理(存储管理的体系结构)】
  • Android的组件、布局学习
  • 【离散数学】——期末刷题题库(树其一)
  • 光模块市场分析与发展趋势预测
  • Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类
  • 鸿蒙实现年月日十分选择框,支持年月日、月日、日、年月日时分、时分切换
  • IntelliJ IDE 插件开发 | (三)消息通知与事件监听
  • VUE小知识点
  • 深入了解常见的应用层网络协议