Как я могу найти и выделить элемент в QtableView. Я выполнил базовый c поиск и выделение, но когда я убираю текст, выделите все еще там и перехожу к другому элементу. проблема в том, что при очистке текста не удаляются блики. Не могли бы вы показать мне, как это исправить.
from PyQt5 import QtWidgets, QtCore, QtGui
import sys
Mylist = ['Apple','Orange','lemon']
class Window(QtWidgets.QWidget):
def __init__(self, mylist):
super(Window, self).__init__()
# mylist
self.mylist = mylist
# layout
Layout = QtWidgets.QVBoxLayout(self)
# Model and listview
self.viewL = QtWidgets.QTableView()
self.model = QtGui.QStandardItemModel()
# Add items
for Name in self.mylist:
item = QtGui.QStandardItem(Name)
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Unchecked)
self.model.appendRow(item)
# set the model
self.viewL.setModel(self.model)
#
search = QtWidgets.QLineEdit()
search.textChanged.connect(self.myfilter)
#
Layout.addWidget(search)
Layout.addWidget(self.viewL)
self.show()
def myfilter(self, text, column=0):
start = self.model.index(0, column)
matches = self.model.match(
start, QtCore.Qt.DisplayRole,
text, 1, QtCore.Qt.MatchContains)
if matches:
index = matches[0]
# index.row(), index.column()
self.viewL.selectionModel().select(
index, QtCore.QItemSelectionModel.Select)
app=QtWidgets.QApplication(sys.argv)
window=Window(mylist=Mylist)
sys.exit(app.exec_())