在写这篇文章之前,xxx已经写过了几篇关于改输入对话框主题的文章,想要了解的朋友可以去翻一下之前的文章

天今做了个基于PyQt4的输入对话框.

在程序输入中,有时会要求同时变改多个参数值,而且类型也不尽相同,

这时面下的模块比拟完全的处理了这个题问.

先看个示例吧.比如我们有三个参数:

一个是a,要求输入的是数整(int),b要求输入浮点数(float),还有一个字符串c,

values={'a':100,'b':3.5,'c':'Strings'}
title='QInputBox for Setting Values:'
RValues=QInputBox(values,title)
print(RValues)#~ {'a': 100, 'c': 'Strings', 'b': 3.5}

示显的面界如下:

QInputBox模块的码代如下:

每日一道理
天今阳光很好,坐在窗前,看窗外如此晴朗的天感觉特别舒心,雨过天晴后的世界总给人一种明媚,仿佛阳光照耀在“心田”上空,让前些天被风雨践踏的花朵重新得到爱的关怀,重现生命的活力!
#-*- coding:utf-8 -*-
#~ #--------------------------------------------------------------------------------
#~ module:wlab
#~ FileName=WPyQt4Input.py
#~ Funciton:PyQt4的输入对话框
#~ author:吴徐平
#~ Date:2013-05-03
#~ Email:539688300@qq.com
#~ #-------------------------------------------------
import sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass QInputDialog(QtGui.QDialog):def __init__(self, values,title='Setting Values:',parent=None):'''#~ >>>values={'String':'This is String','float':3.5,'int':15}#~ >>>title='QInputBox for Setting Values:'#~>>>dlg = QInputDialog(values=values,title=title) #~ >>>if ( dlg.exec_() == QtGui.QDialog.Accepted):RValues = dlg.GetModifiedValues()    else:RValues = dlg.GetOriginValue()      '''        QtGui.QDialog.__init__(self, parent=parent)self.setWindowTitle(title)self.OriginValues=values.copy()self.ModifiedValues=values.copy()self.vbox = QtGui.QVBoxLayout()cnt=0for key in self.ModifiedValues:keyStr=str(key)label=keyStr+' :'KeyLabel=QtGui.QLabel(label)ValueLineEdit=QtGui.QLineEdit(str(self.ModifiedValues[key]))#~ #为件控设置一个名字,方便使用函数findchild()查找ValueLineEdit.setObjectName('VLE'+str(cnt))            hbox = QtGui.QHBoxLayout()hbox.addWidget(KeyLabel)hbox.addWidget(ValueLineEdit)            self.vbox.addLayout(hbox)cnt=cnt+1self.btn_OK=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)self.btn_Cancel=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Cancel)self.btn_OK.clicked.connect(self.accept )self.btn_Cancel.clicked.connect(self.reject) hbox = QtGui.QHBoxLayout()   hbox.addWidget(self.btn_OK)hbox.addWidget(self.btn_Cancel)self.vbox.addLayout(hbox)self.setLayout(self.vbox)def GetOriginValue(self):'''#~ if the user click btn_Cancel,then return OriginValues'''return self.OriginValuesdef GetModifiedValues(self):'''#~ if the user click btn_OK,then return self.ModifiedValues'''cnt=0for key in self.ModifiedValues:keyStr=str(key)VLEObjectName='VLE'+str(cnt)VLE=self.findChild((QtGui.QLineEdit, ),VLEObjectName)cnt=cnt+1ovk=self.ModifiedValues[key]if(type(ovk)==int):self.ModifiedValues[key]=int(VLE.text())elif(type(ovk)==float):self.ModifiedValues[key]=float(VLE.text())else:self.ModifiedValues[key]=str(VLE.text()) return self.ModifiedValues#~ #封装好的参数输入对话框
def QInputBox(values,title='Setting Values:'):'''#~ >>>values={'String':'This is String','float':3.5,'int':15}#~ >>>title='QInputBox for Setting Values:'#~ >>>print(QInputBox(values,title))'''    app = QtGui.QApplication(sys.argv)dlg = QInputDialog(values=values,title=title)    if ( dlg.exec_() == QtGui.QDialog.Accepted):RValues = dlg.GetModifiedValues()    else:RValues = dlg.GetOriginValue()return RValues#~ #-------------------------------------------------
if __name__ == '__main__': values={'String':'This is String','float':3.5,'int':15}title='QInputBox for Setting Values:'print(QInputBox(values,title))#print(QInputBox(values))

运行效果如下.

对话框会主动根据多个Values的值主动成生窗口件控.

文章结束给大家分享下程序员的一些笑话语录: 有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。
“如果你亲我一下,我会变成一个美丽的公主哦。”男人一言不发,把青蛙捡起来,放入口袋。
“如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。”男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。”男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。”再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
  最后,青蛙无力地问:“我开出了这么好的条件,为什么你还不肯吻我?”男人说:“我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。”

转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/03/3057258.html

输入对话框基于PyQt4的输入对话框相关推荐

  1. 基于Annotation的输入校验

    这种基于Annotation的输入校验实质上也属于Struts 2"零配置"特性的部分,它允许使用Annotation来定义每个字段应该满足的规则,Struts 2在com.ope ...

  2. 基于MFC平台的对话框软件模型

    一.MFC的架构根据主窗口类型的不同可分一下几种 (1)SDI,单文档界面,一个主框架窗口下只能编辑一份文档.如记事本和画笔等 (2)MDI,多文档界面,一个主框架窗口下可以编辑多份文档.如VC,PS ...

  3. dialog对话框初始化 mfc_MFC添加子对话框及如何初始化

    一.建立子对话框 1.建立一个基于对话框的MFC工程 2.在资源视图中右键单击.rc文件,然后选择添加添加资源->Dialog 3.第二步新建的Dialog对话框中默认的会有确认和取消两个按钮( ...

  4. android 之Dialog的多种Dialog对话框(以及反射在自定义对话框的运用)

    实际效果: 实例代码: 一个"启动初始Activity.xml" 一个弹出的Activity 业务逻辑代码: package com.hsj.example.alertdialog ...

  5. wps重复上一步快捷键_WPS表格怎么快速输入重复内容?快速输入重复内容的详细步骤...

    Sub选择性粘贴__连接() DimrngAsString,NewShtAsString,OldShtAsString,texts,iAsByte,ansAsByte IfActiveSheet.Pr ...

  6. 选择文件对话框、保存文件对话框、选择文件夹对话框

    选择文件对话框 // 设置图像文件过滤格式CString lv_strFilterAll = _T("所有文件(*.*)|*.*||");CString lv_strFilterJ ...

  7. Qt的对话框与窗口--标准的对话框

    Qt的对话框与窗口--标准的对话框 标准的对话框 QFileDialog对话框 1.选择打开一个文件 2.选择打开多个文件 3.选择已有目录 4.选择保存文件名 QColorDialog对话框 QFo ...

  8. Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法

    一.前言 这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发 ...

  9. Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法...

    这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发有点像,渐 ...

最新文章

  1. Oracle高效分页存储过程实例
  2. js基础--数据类型检测的相关知识
  3. 解决安装完ubuntu登陆无root账户问题
  4. HDU 3501 Calculation 2
  5. 网易云音乐前副总裁教你如何做产品
  6. Jacobi并行拆解
  7. 树莓派外设开发基础(wiringPi库)
  8. genymotion 此应用与您的手机不兼容
  9. 计组之数据运算:3、定点数、浮点数
  10. 14 MM配置-BP业务伙伴-定义供应商科目组和字段选择
  11. Cesium工作笔记001---地理位置信息js展示框架_Cesium介绍
  12. 删除文件部分内容 php,php实现遍历目录并删除指定文件中指定内容_php技巧
  13. Smack Extensions用户手册
  14. PLA算法总结及其证明
  15. 图像处理基础(2):自适应中值滤波器(基于OpenCV实现)
  16. 根据经纬度和日期计算日出日落时间
  17. vs2019编译libcef
  18. excel设置行高_聊聊python 办公自动化之 Excel(下)
  19. Windows2012开机启动项设置
  20. 大厂面试 | 蚂蚁金服前端岗三面真题!

热门文章

  1. 函数动态传参详细,作用域和名称空间,global和nonlocal
  2. MySQL给一个字段递增赋值
  3. Spring.net与Asp.net Mvc结合示例《转载》
  4. 数组去重是面试中经常问到的问题
  5. Sublime Text 3 快捷键精华版
  6. [转]远程唤醒技术在运维中的应用
  7. Expected a key while parsing a block mapping. assets: ^
  8. js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝
  9. PostgreSQL cheatSheet
  10. JavaScript里的循环方法:forEach,for-in,for-of