动态生成控件参考上一篇: 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值的更多相关文章

  1. sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

    原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...

  2. AngularJS中获取ng-repeat动态生成的ng-model值

    需求:通过ng-repeat动态生成的CheckBox,实现勾选控制对应的批次号.如图: html: <div class="clearfix"> <div cl ...

  3. DAO以及获取自动生成主键值

    package com.alibaba.sql; import java.lang.reflect.InvocationTargetException; import java.sql.Connect ...

  4. jQuery获取动态生成的元素

    需求描述:页面上可以动态添加数据,比如table,点击按钮可以动态添加行.又或页面 加载时table数据是通过ajax从后台获取的.而这时我们想要获取其中的某个值,又该如何获取呢? 如果是要通过某个事 ...

  5. C# 反射(GetType) 获取动态Json对象属性值的方法

    之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...

  6. C# 动态代码生成控件后其他事件不能获取该控件的值

    1.新建web项目,添加两个Button控件,结果如图. 2.Button按钮控件点击事件代码如下 protectedvoid Button1_Click(object sender, EventAr ...

  7. 关于动态生成dom绑定事件失效的原因

    之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试 ...

  8. Angularjs给动态生成的元素绑定事件

    //获取动态生成的元素 getJqforAnguar:function(jqid){ angular.element(document).injector().invoke(function($com ...

  9. 动态生成tr,并将其下控件的值拼接后传到后台并保存

    有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...

随机推荐

  1. net MVC 重定向总结

    [HttpPost] public ActionResult StudentList(string StudName, string studName, DateTime BirthDay, Form ...

  2. jsoup-处理html中的script数据

    /** * 价值在线数据-左边分类抓取 * http://www.valueonline.cn/laws/laws?typeid=96219074211635284 * @author hwaggLe ...

  3. 【Codefoces487E/UOJ#30】Tourists Tarjan 点双连通分量 + 树链剖分

    E. Tourists time limit per test: 2 seconds memory limit per test: 256 megabytes input: standard inpu ...

  4. 用gulp打包带参数资源做法与asp.net/java项目结合的自动构建方案探讨

    先探讨方案,后续再实现. gulp打包前端教程配置:http://www.cnblogs.com/EasonJim/p/6209951.html 可能存在以下场景: 1.整个服务端采用接口的形式暴露给 ...

  5. Java开发环境搭建——Maven配置

    创建Java应用程序项目mvn archetype:generate -DgroupId=com.liq -DartifactId=firstApp -DarchetypeArtifactId=mav ...

  6. bzoj 1004 Cards

    1004: [HNOI2008]Cards Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有 多少种染色方案,Sun ...

  7. BZOJ 4569 萌萌哒

    题目传送门 4569: [Scoi2016]萌萌哒 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 483 Solved: 221 [Submit][S ...

  8. java学习笔记一

    数据类型 Java数据类型分为两大类:基本数据类型和复合数据类型,其中复合数据类型包括数组.类和接口. 基本数据类型(默认值只在类中有,函数变量无初始值) int 32bit 0 boolean 1b ...

  9. 常用的网络命令--之...... Ipconfig详解

    ipconfig是运行微软的Windows9x/NT/2000/XP/Vista操作系统的电脑上用来控制网络连接的一个命令行工具.它的主要功用,包括用来显示现时网络连接的设置(/all参数),或通过/ ...

  10. 自然语言27_Converting words to Features with NLTK

    https://www.pythonprogramming.net/words-as-features-nltk-tutorial/ Converting words to Features with ...