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

How to display values from Database into QlineEdit pyqt4 python

我的结果 = ('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 中。

这是我的看法:

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

对于 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 上安装了它。但是为什么不使用比行编辑更有活力的东西呢?例如带有可编辑项目的 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 事件,该事件会在列表中的一项发生更改时通知您。因此,您可以在进行编辑后进入并更新您的列表。我希望这会有所帮助,如果您有任何疑问或需要朝着正确的方向前进,请告诉我。