python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例


Posted in Python onFebruary 27, 2020

PyQt5输入对话框QInputDialog介绍

QInputDialog控件是一个标准对话框,有一个文本框和两个按钮(ok和cancel)组成,当用户单击ok或enter键后,在父窗口可以收集通过QInputDialog控件输入的信息,QInputDialog控件是QDialog标准对话框的一部分

在QInpuTDialog控件中可以输入数字,字符串或列表中的选项,标签用于提示必要的信息

QInputDialog类中常用的方法

方法 描述
getint() 从控件中获得标准整数输入
getDouble() 从控件中获得标准浮点数输入
getText() 从控件中获得标准字符串的输入
getItem() 从控件中获得列表里的选项输入

QInputDialog使用实例

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class InputDialogDemo(QWidget):
  def __init__(self,parent=None):
    super(InputDialogDemo, self).__init__(parent)

    #表单布局
    layout=QFormLayout()

    #创建按钮,当行文本框并建立按钮点击与槽函数的联系,添加到布局中
    self.btn1=QPushButton('获得列表里的选项')
    self.btn1.clicked.connect(self.getItem)
    self.Le1=QLineEdit()

    layout.addRow(self.btn1,self.Le1)

    # 创建按钮,当行文本框并建立按钮点击与槽函数的联系,添加到布局中
    self.btn2=QPushButton('获得字符串')
    self.btn2.clicked.connect(self.getText)
    self.le2=QLineEdit()
    layout.addRow(self.btn2,self.le2)

    # 创建按钮,当行文本框并建立按钮点击与槽函数的联系,添加到布局中
    self.btn3 = QPushButton('获得整数')
    self.btn3.clicked.connect(self.getInt)
    self.le3 = QLineEdit()
    layout.addRow(self.btn3, self.le3)

    #设置主窗口的布局及标题
    self.setLayout(layout)
    self.setWindowTitle('Input Dialog例子')
  def getItem(self):
    #创建元组并定义初始值
    items=('C','C++','C#','JAva','Python')
    #获取item输入的值,以及ok键的点击与否(True 或False)
    #QInputDialog.getItem(self,标题,文本,元组,元组默认index,是否允许更改)
    item,ok=QInputDialog.getItem(self,"select input dialog",'语言列表',items,0,False)

    if ok and item:
      #满足条件时,设置单行文本框的文本
      self.Le1.setText(item)
  def getText(self):
    text,ok=QInputDialog.getText(self,'Text Input Dialog','输入姓名:')
    if ok:
      self.le2.setText(str(text))

  def getInt(self):
    num,ok=QInputDialog.getInt(self,'Integer input dualog','输入数字')
    if ok:
      self.le3.setText(str(num))
if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=InputDialogDemo()
  demo.show()
  sys.exit(app.exec_())

允许程序,显示效果图如下

python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例

python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例

python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例

python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例

代码分析:

在这个例子中,在QFormLayour布局管理器中放置了三个按妞和三个文本框,当单击按钮时,将弹出标准对话框,把按钮的单击信号与自定义的槽函数进行连接

self.btn1.clicked.connect(self.getItem)
self.btn2.clicked.connect(self.getText)
self.btn3.clicked.connect(self.getInt)

当调用QInputDialog.getItem()函数时,QInputDialog控件包含一个QComboBox控件和两个按钮,用户从QComboBox中选择一个选项后,允许用户确认或取消操作

def getItem(self):
    items=('C','C++','C#','JAva','Python')
    item,ok=QInputDialog.getItem(self,"select input dialog",'语言列表',items,0,False)
    if ok and item:
      #满足条件时,设置单行文本框的文本
      self.Le1.setText(item)

同理,当调用QInputDialog.getText()函数时,QInputDialog控件包含一个文本框和两个按钮,允许用户输入字符串

本文详细讲解了PyQt5输入对话框QInputDialog详细使用方法与实例,更多关于这方面的知识请查看下面的相关链接

Python 相关文章推荐
Python编程修改MP3文件名称的方法
Apr 19 Python
分分钟入门python语言
Mar 20 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
python3.7 的新特性详解
Jul 25 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
python多进程重复加载的解决方式
Dec 13 Python
Tensorflow 多线程设置方式
Feb 06 Python
Python中的sys.stdout.write实现打印刷新功能
Feb 21 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
python面向对象版学生信息管理系统
Jun 24 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 #Python
Python如何使用OS模块调用cmd
Feb 27 #Python
python之生成多层json结构的实现
Feb 27 #Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 #Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 #Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 #Python
Python 格式化打印json数据方法(展开状态)
Feb 27 #Python
You might like
php 输出双引号"与单引号'的方法
2010/05/09 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
javascript object array方法使用详解
2012/12/03 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
简单谈谈Python中的闭包
2016/11/30 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python中import与from方法总结(推荐)
2019/03/21 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
初中体育教学反思
2014/01/14 职场文书
C++程序员求职信
2014/05/07 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
工作年限证明范本
2015/06/15 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
利用Python+OpenCV三步去除水印
2021/05/28 Python
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技