先看效果图
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我们要达到的目标是做出一个对话框,这个对话框是供用户选择文件的,左边的编辑框可以显示所选文件的地址,右边的按钮可以弹出选择对话框
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
首先上代码
import  sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *class Dialog(QDialog):def __init__(self,parent=None):super(Dialog,self).__init__(parent)self.linDic=dict.fromkeys(('ld1','ld2','ld3','ld4','ld5','ld6'),1)self.btnDic=dict.fromkeys(('ld1','ld2','ld3','ld4','ld5','ld6'),1)keys=self.linDic.keys()grid=QGridLayout();r=0for key in keys:self.linDic[key]=QLineEdit()self.btnDic[key]=QPushButton('...')grid.addWidget(self.linDic[key],r,0)grid.addWidget(self.btnDic[key],r,1)r+=1self.connect(self.btnDic[key],SIGNAL("clicked()"),self.showMsg)self.setLayout(grid)def showMsg(self):filename = QFileDialog.getOpenFileName(self, 'Open file','/home')btn=self.sender()keys = self.linDic.keys()for key in keys:if self.btnDic[key]==btn:breakself.linDic[key].setText(filename)app =QApplication(sys.argv)
dialog=Dialog()
dialog.show()
app.exec_()
-------------------------
结构分析:
-------------------------
1.利用fromkeys函数创建出两个字典,如若不懂这个函数,请参考点击打开链接
2.在for循环里面重新给字典的每个键对应的值设置成相应的控件,并完成布局,以及信号和槽的设置
3.在showMsg函数里面读取文件路径并赋给该按钮对应的编辑框。
-------------------------
关键函数分析:
-------------------------
这个对话框是一般水平的人都能写出来的,大不了一个一个控件写,一个一个信号与槽写,这样是很容易实现的,但是如何用简短的代码来完成这些重复性很强的操作呢?
我首先想到的是用字典来存储这些控件,于是用到了字典初始化方式中的一种“fromkeys",然后在for循环里面进行布局,链接。但是当进行到将读取到的文件路径赋值给该按钮对应的编辑框时,当时我被难倒了,不知道该怎么做。也尝试了一些其他的方法,但是都不行。后来经查阅资料,阅览一些书籍,发现了sender()这个函数,利用这个函数能发现到底是来自哪个QPushButton对象在调用这个showMsg,于是这个问题就解决了。

PyQt4编程之简短地做出多个选择框相关推荐

  1. 做出的C++选择以及背后的原因

    要让出资人明白你做出的C++选择以及背后的原因.也许出资人会有更容易操作.更快实现的好主意.3.为你提供的日期说明信心范围.很可能管理层不明白你的估算意味着什么,而且你也有可能不理解他们所要的东西. ...

  2. php jq ajax 4个下拉框联动案列,Ajax与Jquery结合数据库做出实现下拉框的二级联动...

    这次给大家带来Ajax与Jquery结合数据库做出实现下拉框的二级联动,Ajax与Jquery结合数据库做出实现下拉框二级联动的注意事项有哪些,下面就是实战案例,一起来看一下. 首先我们需要先建立好数 ...

  3. 零基础是学java还是python-零基础学习编程,Java、Python你会选择哪个?

    现在很多零基础的小伙伴都想要进入到编程行业之中,无论什么情况选择哪门语言都非常重要,毕竟关系到以后的发展和薪资,很多人都知道Python是当下很火的语言,也知道Java是非常高级的编程语言,问题来了, ...

  4. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

  5. 如何用方正飞腾做出“凹”形文本框

    如何用方正飞腾做出"凹"形文本框,点击直接都是长方形的文本框,插图片很难. 1.排入一个文字块,你会看到文字块的边框上有八个红点:  2.按住shift键,把光标移动到上方中间的红 ...

  6. 鲤鱼鱼竿豆荚 - 建议做出正确的选择

    鲤鱼鱼竿豆荚 - 建议做出正确的选择 捞任何时间当今天大多数的鲤鱼钓鱼者使用多连杆设置窗口,这使垂钓者尝试许多不同的领域,诱饵和钻井平台在同一时间.为了避开背负着许多捕鱼单独banksticks的问题 ...

  7. [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)

    [编程题]:n头牛中选择满足所有m种特性的牛 牛牛管理着一片牧场,在这片牧场中,一共有n头奶牛,为了方便统计,它们排成一排,编号为 1 - n. 现在质检员牛妹在检测这些奶牛的质量,她列出了m条特性, ...

  8. python编程语言零基础入门-零基础学习编程,Java、Python你会选择哪个?

    现在很多零基础的小伙伴都想要进入到编程行业之中,无论什么情况选择哪门语言都非常重要,毕竟关系到以后的发展和薪资,很多人都知道Python是当下很火的语言,也知道Java是非常高级的编程语言,问题来了, ...

  9. 为什么大猩猩比专家高明:如何让大脑帮你做出正确的选择

    在人类大脑进化过程中,前额叶皮层经历了急剧的扩张.当你拿现代人类大脑皮层同其他灵长类动物甚至我们一些原始人类祖先的大脑皮层相比较时,你会发现最明显的解剖学差异就是人类的额头较宽.例如,尼安德特人的大脑 ...

最新文章

  1. 程序员注意了!人社部“就业报告”:未来5年,这10个新职业有千万缺口
  2. 张钹、朱松纯、黄铁军等同台激辩:人工智能的“能”与“不能”
  3. 8. American Friendship 美国式的友谊
  4. 开发环境中实现Lombok消除Java冗余
  5. linux x和s 的区别,Hadoop1.x和2.X的HDFS fsimage和edits文件运行机制对比
  6. 查看centos当前版本
  7. java笔试题递归,递归(网上搜的一些笔试题)
  8. MongoDB简介、在node中使用MongoDB
  9. SpringBoot搭建天气预报微服务系统
  10. 讲座资源:ASP.NET AJAX 体验
  11. 【ZZ】神与学霸的区别
  12. 夏普Sharp MX-M2658N 一体机驱动
  13. 思科路由器配置命令(三)
  14. android辅助功能截屏,安卓截屏快捷键截屏方法以及其他的截屏方法【图文】
  15. 850pro测试软件,业界领先技术 三星850PRO 256G固态硬盘测试
  16. 以太坊主动数据同步简析
  17. C++封装zlib库
  18. 关于姓氏的一些全国分布情况的统计与分析
  19. Cocos2d-x3.8.1制作愤怒的小鸟
  20. 英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!

热门文章

  1. 【ABAP】SAP供应商自定义决裁生成实现
  2. 客户关系管理SAP整体解决方案
  3. ABAP通过正则表达式提成字符串中的数字例子
  4. SAP 动态设置 GUI STATUS 灰色不可用 或者隐藏
  5. 上市后首份年报亮眼,快手天花板在哪?
  6. linux中jpg文件,Linux下压缩和优化jpg与png图片的方法
  7. 10显示不支持导入dwg文件_Global Mapper中80坐标系高程DEM与kml文件叠加实例
  8. mysql从库同步delete不动了_MySQL主从同步报错故障处理集锦
  9. python中的urlencode和urldecode的用法
  10. 7道Python函数相关的练习题