首页 > 解决方案 > 如何将数据库中的值显示到 QlineEdit pyqt4 python

问题描述

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 too many values to unpack。请指导我如何在不使用 split() 函数的情况下将值显示到 lineEdit 中。

标签: pythonpyqt4qlineedit

解决方案


对于 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事件,该事件将在列表中的一项更改时通知您。因此,您可以在进行编辑后进入并更新您的列表。我希望这会有所帮助,如果您有任何疑问或需要朝着正确的方向推动,请告诉我。


推荐阅读