Как отобразить значения из базы данных в QlineEdit pyqt4 python - PullRequest
0 голосов
/ 27 марта 2019

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 слишком много значений для распаковки.Пожалуйста, объясните мне, как отображать значения в lineEdit без использования функции split ().

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Для 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])

Приведенный выше код сработает и даст вам редактирование строки для каждого элемента в вашем списке. Но если этот список будет расти, вам нужно будет добавить новый 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 , которое сообщит вам, когда один из элементов в списке изменился. Так что вы можете войти и обновить свой список после внесения изменений. Я надеюсь, что это поможет, пожалуйста, дайте мне знать, если у вас есть вопросы или вам нужно подтолкнуть в правильном направлении.

0 голосов
/ 28 марта 2019

Это мое мнение:

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