Как извлечь правильное слово из фильтрации (представление списка) с помощью pyqt4 - PullRequest
0 голосов
/ 07 марта 2019

Здесь, в моем примере программы, я хочу взять элемент из другого виджета, используя представление списка. В моем автопредставлении есть список элементов, это total_list1 = ["форма обновления", "форма автоматического обновления", "магазин продукты "," магазинные программы "]. Под тем, что я хочу выбрать" форма продления ", подразумевается, что она автоматически прикрепляет элемент" "форма автоматического продления". У меня нет никаких идей по этому поводу. Может кто-нибудь, пожалуйста, помогите мне, как решить эту программу. Спасибо заранее.

Ниже приведен мой код:

import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        Box=QtGui.QHBoxLayout(self)
        self.le=QtGui.QLineEdit()
        self.btn=QtGui.QPushButton("s")
        self.btn.clicked.connect(self.items_list)
        Box.addWidget(self.le)
        Box.addWidget(self.btn)
    def items_list(self):
        self.w=QtGui.QWidget()
        vbox1 = QtGui.QVBoxLayout(self.w)
        hbox1=QtGui.QHBoxLayout()
        self.le_search = QtGui.QLineEdit()
        se_btn1 = QtGui.QPushButton("Search")
        se_btn1.clicked.connect(self.filterClicked1)
        hbox1.addWidget(self.le_search)
        hbox1.addWidget(se_btn1)
        vbox1.addLayout(hbox1)
        total_list1 =["renewal form","auto renewal form","store products","store programs"]
        self.list1 = QtGui.QListView()
        self.model1 = QtGui.QStandardItemModel(self.list1)
        for code in total_list1:
            item1 = QtGui.QStandardItem(code)
            self.model1.appendRow(item1)
        self.list1.setModel(self.model1)
        vbox1.addWidget(self.list1)
        self.w.show()
    def filterClicked1(self):
        self.w.close()
        filter_text = str(self.le_search.text()).lower()
        for row in range(self.model1.rowCount()):
            if filter_text in str(self.model1.item(row).text()).lower():
                self.list1.setRowHidden(row, False)
                print self.model1.item(row).text(), "wordd"
                self.le.setText(self.model1.item(row).text())
                self.le.setCursorPosition(0)
            else:
                self.list1.setRowHidden(row, True)
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

Я выбираю здесь "форму обновления"

enter image description here

но я получаю форму автообновления

enter image description here

...