在Qlistview中查找值的索引

我使用PySide2并希望搜索QListView以获取值并选择该行。就像你可以在QComboBox上使用.findText(string_to_search_for)一样。 如何搜索Qlistview中的值并返回索引?在Qlistview中查找值的索引

一些额外的信息:

我而QListView模型是实现QAbstractTableModel的我写的。 该模型充满了来自数据库的数据,第一列中的id和第二列中的数据库项目的名称。 QListView只显示第二列。这是我的QTableModel的代码。

from PySide2 import QtGui,QtCore 

class TwoColumnTableModel(QtCore.QAbstractTableModel):

def __init__(self, row_data=[], column_data=[], parent=None):

QtCore.QAbstractTableModel.__init__(self, parent)

self.row_data = row_data

self.column_data = column_data

def rowCount(self, parent):

return len(self.row_data)

def columnCount(self, parent):

return len(self.column_data)

def flags(self, index):

return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable

def data(self, index, role):

if role == QtCore.Qt.DisplayRole:

row = index.row()

column = index.column()

value = self.row_data[row][column]

self.dataChanged.emit(row, column, [])

return value

def headerData(self, section, orientation, role):

if role == QtCore.Qt.DisplayRole:

if orientation == QtCore.Qt.Horizontal:

if section < len(self.column_data):

return self.column_data[section]

else:

return "TEMP COL"

def insertRows(self, position, rows, data=[], parent=QtCore.QModelIndex()):

self.beginInsertRows(parent, position, position + rows - 1)

for i in range(len(data)):

columns = []

row_column1 = data[i][0]

row_column2 = data[i][1]

columns.insert(0, row_column1)

columns.insert(1, row_column2)

self.row_data.insert(position, columns)

self.endInsertRows()

return True

def removeRows(self, position, rows, parent=QtCore.QModelIndex()):

self.beginRemoveRows()

for i in range(rows):

value = self.row_data[position]

self.row_data.remove(value)

self.endRemoveRows()

return True

回答:

我结束了创建在QTableModel类中的下列功能:

def find_index_of_value(self, search_string, search_column): 

for index in range(self.rowCount(None)):

model_index = self.index(index, 1)

index_value = self.data(model_index, search_column)

if index_value == search_string:

return model_index

的“SEARCH_STRING”是我要找的字符串和“search_column”作为模型的列,其中i想要搜索该字符串。通过返回索引,我可以在我的QListView上使用setCurrentIndex(index),就是这样。

以上是 在Qlistview中查找值的索引 的全部内容, 来源链接: utcz.com/qa/263459.html

回到顶部