Здесь, в моем примере программы, я хочу взять элемент из другого виджета, используя представление списка. В моем автопредставлении есть список элементов, это 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()
Я выбираю здесь "форму обновления"
но я получаю форму автообновления