Я искал выбор строки в 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