Pyqt 获取动态生成的QLineEdit值
2015-06-29 17:12
627 查看
动态生成控件参考上一篇: /article/6192172.html
那如何获取动态生成控件的值呢?
比如,动态的生成10个输入框QLineEdit,输入值后,要获取每一个LineEdit的值。 在这里我们通过字典dict{} 来存储控件,循环dict 获取控件的text()
效果:
打印数据:
那如何获取动态生成控件的值呢?
比如,动态的生成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_())
效果:
打印数据:
{'1': {'value': '1chrome', 'key': '1name'}, '0': {'key': 'keyname', 'value': 'htmls'}, '3': {'value': '3chrome', 'key': '3name'}, '2': {'value': '2chrome', 'key': '2name'}}
相关文章推荐
- qt界面自动放大缩小【转】
- Qt:禁止qDebug的输出
- 一个Qt多线程应用的新手笔记
- qt的事件系统一点点基础知识
- qt creator中使用qwt插件
- 解决QT断点无效的问题
- QT组件的事件
- CMake 编译OSG 3.2.1 使用QT 5.4
- Qt读入读出数据库中的图片
- Qt开发:Qt显示图片的三种方法
- Qt下 QString转char*
- [Qt]简单使用 Zlib 库压缩/解压数据
- Qt编程之QString 处理换行
- 让QT对话框显示中文
- Qt中 QString 和int, char等的“相互”转换【转】
- QT获取时间
- QTreeView的使用总结1
- Qt中的各种字符串转换问题
- Qt类使用记录
- Qt 中彩色图像转换为灰度图