0

QStandardItemModel が入力された QCompleter (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

4

2 に答える 2

3

highlightedシグナルには 2 つのバージョンがあります。デフォルトのバージョンは文字列を発行し、もう 1 つはQModelIndex インデックスを取得するには、次を使用します。

completer.highlighted[QtCore.QModelIndex].connect(onHighlight)

ただし、これは補完モデルのインデックスであり、補完モデルに入力したモデルではないことに注意してください。mapToSource元のインデックスを取得するために使用できます。

def onHighLight(index):
    #completer model
    print(index)
    #model 
    sourceIndex=completer.completionModel().mapToSource(index)
    print(sourceIndex)
于 2015-12-14T13:00:19.447 に答える