如何将值从数据库显示到QlineEdit pyqt4 python

时间:2019-03-27 10:58:18

标签: python pyqt4 qlineedit

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中。

2 个答案:

答案 0 :(得分:0)

对于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的,因为我只在PC上安装了它。但是,为什么不使用比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事件,该事件将在列表中的一项更改时通知您。这样,您就可以在进行编辑后进入并更新列表。希望对您有所帮助,如果您有任何疑问或需要朝正确的方向发展,请告诉我。

答案 1 :(得分:-1)

这是我的看法:

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])