有两个版本的
有一个用QStandardItemModel填充的QComplete(设置为QLineEdit)。该模型还填充了QTableView,我需要获取QModelIndex并在QTableView中选择它,但它失败了,它传递文本而不是QModelIndex:
completer.highlighted.connect(print_index)
只通过第一个索引:
completer.highlighted.connect(lambda : select_index(completer.currentIndex()))
def select_index(index):
table_view.setCurrentIndex(index)
我读过文档,但不明白我做错了什么。http://doc.qt.io/qt-5/qcompleter.html#highlighted-1
highlighted
信号:默认的一个发出字符串,另一个发出QModelIndex
要获取索引,请使用:
completer.highlighted[QtCore.QModelIndex].connect(onHighlight)
但是要小心,这是完成模型中的索引,而不是填充完成器的模型。您可以使用mapToSource
来获取原始索引。
def onHighLight(index):
#completer model
print(index)
#model
sourceIndex=completer.completionModel().mapToSource(index)
print(sourceIndex)
我想使用QmodelIndex
的row()
函数。它将直接返回您当前选择的列表索引。