python - 如何将数据库中的值显示到 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 中。
解决方案
对于 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事件,该事件将在列表中的一项更改时通知您。因此,您可以在进行编辑后进入并更新您的列表。我希望这会有所帮助,如果您有任何疑问或需要朝着正确的方向推动,请告诉我。
推荐阅读
- javascript - 一键使用两个或多个 URL 用于不同的 ajax
- java - 尝试导入 VMStack 和 CallerSensitive 时,类 DriverManager 出现错误
- node.js - Bot Framework 中的轮播 - 从数据库中不断更新 - 在滚动时?
- dart - 了解 Dart 私人课程
- css - 无法通过 css 选择 [type:radio]
- macos - 装配 - macOS 与 DOS 调试的等价物是什么?
- python - 在使用 virtualenv 时以 sudo 运行脚本
- amazon-web-services - 使用 AWS IoT 和 Mosquitto 客户端会导致 TLS 错误
- c# - Unity中的C#,SetActive从玩家进入触发区域的几个游戏对象
- typescript - 使用枚举值作为通用参数不适用于具有多个值的枚举