myresult =('sandeep pawar','1234','haveri','581110','karnatak')我希望将这些值中的每一个显示为单独的QlineEdit。
myresult = ['sandeep pawar','1234','haveri','581110','karnatak']
for i in myresult:
value = ' '.join(map(str,x))
a,b,c,d,e = value.split(" ")
self.lineEdit.setText(a)
self.lineEdit_2.setText(b)
self.lineEdit_3.setText(c)
self.lineEdit_4.setText(d)
self.lineEdit_5.setText(e)
我尝试过这种方法,但我得到以下错误a,b,c,d,e = value.split(“”)ValueError太多值要解压缩。请指导我如何在不使用split()函数的情况下将值显示到lineEdit中。
对于lineEdit,您只需引用列表中的每个元素,当然这假设您的列表中总是有5个元素。哪个好,但可能会更有活力(见下文)。
myresult = ['sandeep pawar','1234','haveri','581110','karnatak']
self.lineEdit.setText(myresult[0])
self.lineEdit_2.setText(myresult[1])
self.lineEdit_3.setText(myresult[2])
self.lineEdit_4.setText(myresult[3])
self.lineEdit_5.setText(myresult[4])
上面的代码可以使用,并为列表中的每个元素进行行编辑。但是如果该列表增长,则需要向GUI添加新的lineEdit,然后使用myresult[5]
填充它。我宁愿做类似下面的例子。
这是为PyQt5,因为我只在我的电脑上安装它。但为什么不使用比lineedits更动态的东西?例如带有可编辑项目的QlistWidget。
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtWidgets import *
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
listWidget = QListWidget()
listWidget.show()
myresult = ['sandeep pawar','1234','haveri','581110','karnatak']
listWidget.addItems(myresult)
for index in range(listWidget.count()):
item = listWidget.item(index)
item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
sys.exit(app.exec_())
然后,您可以绑定itemChanged事件,该事件将在列表中的某个项目发生更改时通知您。因此,您可以在编辑完成后进入并更新列表。我希望这会有所帮助,如果您有任何疑问或需要朝着正确的方向努力,请告诉我。
这是我的意见:
myresult = ['sandeep pawar','1234','haveri','581110','karnatak']
line_edit = [self.lineEdit,self.lineEdit_2,self.lineEdit_3,self.lineEdit_4,self.lineEdit_5]
for i in range(len(line_edit)):
line_edit[i].setText(myresult[i])