我正在使用PyQt4和Python 3.5制作一个简单的应用程序而且我遇到了问题。
我有一个Qwidget作为setCentralWidget,并且正在制作一个QFormLayout
flo = QtGui.QFormLayout()
flo.addRow("input 1", QtGui.QLineEdit)
flo.addRow("input 2", QtGui.QLineEdit)
现在,我希望这个QFormLayout能够在用户希望的同一窗口中重复多次,以便让他/她有机会插入多个输入。但我不知道这样做。
我用for循环或不同的布局尝试过它,但它或者似乎不起作用,或者QlineEdit只对最后创建的实例是难以处理的,而字符串是“正确”显示的。
这样做的正确方法是什么?
答案 0 :(得分:0)
将{your QFormLayout}.addRow({string}, QtGui.QLineEdit)
更改为{your QFormLayout}.addRow({string}, QtGui.QLineEdit())
示例:
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
class Widget(QtGui.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
self.verticalLayout = QtGui.QVBoxLayout(self)
self.label = QtGui.QLabel(self)
self.label.setText("<center>Ejemplo</center>")
self.verticalLayout.addWidget(self.label)
self.formLayout = QtGui.QFormLayout()
self.verticalLayout.addLayout(self.formLayout)
self.lineEdits = []
for i in range(10):
lineEdit = QtGui.QLineEdit()
self.formLayout.addRow(str(i), lineEdit)
self.lineEdits.append(lineEdit)
self.lineEdits[2].setText("a")
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
输出: