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 相关文章推荐
使用IPython来操作Docker容器的入门指引
Apr 08 Python
Selenium元素的常用操作方法分析
Aug 10 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
pytorch中的transforms模块实例详解
Dec 31 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python实现井字棋小游戏
Mar 09 Python
django 取消csrf限制的实例
Mar 13 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
判断Python中的Nonetype类型
May 25 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 join函数应用
2011/05/04 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
javascript内存分配原理实例分析
2017/04/10 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python求众数问题实例
2014/09/26 Python
python实现用户登录系统
2016/05/21 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
python 安装impala包步骤
2020/03/28 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
python基于opencv 实现图像时钟
2021/01/04 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
个人工作表现评语
2014/04/30 职场文书
留学生求职信
2014/06/03 职场文书
争做文明公民倡议书
2014/08/29 职场文书
2014公司年终工作总结
2014/12/19 职场文书
复兴之路展览观后感
2015/06/02 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server