Pyqt 获取动态生成的QLineEdit值
动态生成控件参考上一篇: http://www.cnblogs.com/dcb3688/p/4588814.html
那如何获取动态生成控件的值呢?
比如,动态的生成10个输入框QLineEdit,输入值后,要获取每一个LineEdit的值。 在这里我们通过字典dict{} 来存储控件,循环dict 获取控件的text()
#!/usr/bin/python
# -*-coding:utf-8-*-
from PyQt4.QtGui import *
from PyQt4.QtCore import * # 主入口文件
class MainWidget(QDialog):
def __init__(self, parent=None):
super(MainWidget, self).__init__(parent)
self.setMinimumSize(100, 100)
self.setWindowFlags(Qt.CustomizeWindowHint|Qt.WindowCloseButtonHint)
self.setWindowOpacity(0.9) # 添加头部group
self.headDict = {}
self.headPostArrayKey = 0
self.HeadGroupBox = QGroupBox(u'动态添加控件数据')
self.HeadGroupBox.setMinimumHeight(100) #高度最小值
self.HeadGroupBox.scroll(100,2)
self.HeadAddParam = QPushButton(u'+')
self.headDict[str(self.headPostArrayKey)+'_key'] = QLineEdit()
self.headDict[str(self.headPostArrayKey)+'_value'] = QLineEdit()
self.HeadGroupBoxLayout = QGridLayout()
self.HeadGroupBoxLayout.addWidget(self.HeadAddParam, 0, 0)
self.HeadGroupBoxLayout.addWidget(QLabel(u'Key:'), 1, 0)
self.HeadGroupBoxLayout.addWidget(self.headDict[str(self.headPostArrayKey)+'_key'], 1, 1)
self.HeadGroupBoxLayout.addWidget(QLabel(u'Value:'), 1, 2)
self.HeadGroupBoxLayout.addWidget(self.headDict[str(self.headPostArrayKey)+'_value'], 1, 3)
self.HeadGroupBox.setLayout(self.HeadGroupBoxLayout)
self.HeadAddParam.clicked.connect(self.addHeadParam) # 提交按钮
self.btnPost = QPushButton(u'提交')
self.postbtnLoayout = QHBoxLayout()
self.postbtnLoayout.addStretch()
self.postbtnLoayout.addWidget(self.btnPost)
# Main布局
main_layout = QVBoxLayout()
main_layout.addWidget(self.HeadGroupBox)
main_layout.addLayout(self.postbtnLoayout) # addLayout 添加的是 Layout
main_layout.setSpacing(0)
self.setLayout(main_layout) self.connect(self.btnPost, SIGNAL('clicked()'), self.postData) def postData(self):
self.headdictdata={}
for k, v in self.headDict.items():
temp=k.split('_')
if temp[1]=='key':
if self.headdictdata.has_key(temp[0]):
self.headdictdata[temp[0]]['key'] =str(v.text())
else:
self.headdictdata[temp[0]] = {'key':str(v.text())} elif temp[1]=='value':
if self.headdictdata.has_key(temp[0]):
self.headdictdata[temp[0]]['value'] =str(v.text())
else:
self.headdictdata[temp[0]] = {'value':str(v.text())} print(self.headdictdata) # 添加头部Data
def addHeadParam(self):
sts=str(self.headPostArrayKey+1)
self.headDict[sts+'_key'] = QLineEdit(sts+'name')
self.headDict[sts+'_value'] = QLineEdit(sts+'chrome') self.HeadGroupBoxLayout.addWidget(QLabel(u'Key'))
self.HeadGroupBoxLayout.addWidget(self.headDict[sts+'_key'])
self.HeadGroupBoxLayout.addWidget(QLabel(u'Value'))
self.HeadGroupBoxLayout.addWidget(self.headDict[sts+'_value'])
self.headPostArrayKey+=1 if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
main_widget = MainWidget()
main_widget.show()
sys.exit(app.exec_())
效果:


打印数据:
{'': {'value': '1chrome', 'key': '1name'}, '': {'key': 'keyname', 'value': 'htmls'}, '': {'value': '3chrome', 'key': '3name'}, '': {'value': '2chrome', 'key': '2name'}}
Pyqt 获取动态生成的QLineEdit值的更多相关文章
- sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别
原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...
- AngularJS中获取ng-repeat动态生成的ng-model值
需求:通过ng-repeat动态生成的CheckBox,实现勾选控制对应的批次号.如图: html: <div class="clearfix"> <div cl ...
- DAO以及获取自动生成主键值
package com.alibaba.sql; import java.lang.reflect.InvocationTargetException; import java.sql.Connect ...
- jQuery获取动态生成的元素
需求描述:页面上可以动态添加数据,比如table,点击按钮可以动态添加行.又或页面 加载时table数据是通过ajax从后台获取的.而这时我们想要获取其中的某个值,又该如何获取呢? 如果是要通过某个事 ...
- C# 反射(GetType) 获取动态Json对象属性值的方法
之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...
- C# 动态代码生成控件后其他事件不能获取该控件的值
1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...
- 关于动态生成dom绑定事件失效的原因
之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试 ...
- Angularjs给动态生成的元素绑定事件
//获取动态生成的元素 getJqforAnguar:function(jqid){ angular.element(document).injector().invoke(function($com ...
- 动态生成tr,并将其下控件的值拼接后传到后台并保存
有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...
随机推荐
- bzoj2503&poj3387[NEERC2006]IdealFrame
其实只是把别人的题解强行扩写了 写这篇题解之前我不会的预备知识: 欧拉通路:从图中一个点出发不重复地遍历所有边的路径(可以停在另一个点) 欧拉回路:从图中一个点出发不重复地遍历所有边的回路(必须回到出 ...
- linux 下向github上传代码
上传代码: cd TPS/devices/M8 git init #//初始化 git add . #如果是.表示上传全 ...
- 使用MicroService4Net 快速创建一个简单的微服务
“微服务架构(Microservice Architecture)”一词在过去几年里广泛的传播,它用于描述一种设计应用程序的特别方式,作为一套独立可部署的服务.目前,这种架构方式还没有准确的定义,但是 ...
- ueditor 百度编辑器,取消或自定义右键菜单
如图:有2种自定义方法,一种是改源码,一种是初始化 初始化,如下代码: var ue = UE.getEditor('XXXid',{ // contextMenu:[ {label:'', cmdN ...
- 基于 BinaryReader 的高效切割TXT文件
日常工作中免不了要面对一些文件的操作.. 但是如果是日志文件..动辄上G的..处理起来就不那么轻松随意了.. 尤其文件还很多的时候.. 这个时候就会用到大文件切割.. 下边贴出的示例是实验了一个 10 ...
- ThinkPhp 验证码不显示图片
验证码不显示原因分析: 1.先确保是否开启了 gd库 2.页面是否存在bom头 3.导入的ORG.Util.Image是否存在 4.入口文件中是否有define('APP_DEBUG', TRUE); ...
- [译]git log进阶
格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge bra ...
- 莫比乌斯环-vtkTriangleStrip
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...
- Android检测网络是否正常代码!
在Android开发中,如果该应用程序需要连接网络请求,那么最好我们先做一个检测网络是否在线的判断,否则程序容易出现卡死或FC等Bug,应该判断如果手机离线则弹出提示让用户检查网络,如果正常则继续执行 ...
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(2)CSS3利用图层叠加实现多背景
CSS 3允许设置多个背景图片,每个背景图片占一层,层的上下按照在CSS中书写的顺序来定,最先写的背景在最上层,每层图片定义使用英文逗号隔开. 例如下面的代码: background:url(http ...