プログラムでQTreeViewの行を選択すると、回答の95%が見つかりましたhere。PyQt:プログラムでQTreeViewの行を選択して信号を送信する
select()
メソッドは、ビューをクリックしたイベントをトリガーしないように見えることを除いて、ジョブを完全に行います。
私は必要な信号を自分で呼び出すことで回避策を見つけましたが、人間のクリックをエミュレートし、関連するすべての信号を送信する方法のヒントがありますか?ここで
は(Pythonで)私の回避策です:
oldIndex=treeView.selectionModel().currentIndex()
newIndex=treeView.model().indexFromItem(item)
#indexes stored----------------------------------
treeView.selectionModel().select(
newIndex,
QtGui.QItemSelectionModel.ClearAndSelect)
#selection changed-------------------------------
treeView.selectionModel().currentRowChanged.emit(
newIndex,
oldIndex)
#signal manually emitted-------------------------
あなたに関連する信号をreferrringている何の特定の? – ekhumoro
@ekhumoroおそらく、選択された信号。しかし、それは実際に放出されているはずですか? – Trilarion
実際、私はcurrentRowChangedシグナルが必要なので、私の場合はハックが機能しますが、人間のクリックを模倣する方法があれば疑問に思っていました。 – Gui3