当QComplete高亮显示时,传递QModelIndex而不是QString



有一个用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)

我想使用QmodelIndexrow()函数。它将直接返回您当前选择的列表索引。

相关内容

  • 没有找到相关文章

最新更新