2011-09-18 30 views
3

有沒有辦法獲取和更改QTreeView(而不是QTreeWidget)中的活動行?通過激活,我指的是焦點突出顯示的行,而不是選定的行。在繪畫事件中,我可以使用QStyle.State_HasFocus來獲取活動行,但這似乎在別處不起作用。以編程方式獲取並設置QTreeview中的活動行(PyQt)

回答

3

你可以獲取/設置活動行與currentIndex()setCurrentIndex()功能,你可以在這兩個QTreeViewQItemSelectionModel發現(後者由QTreeView.selectionModel()返回)。

儘管名稱不同,QItemSelectionModel將獨立處理視圖當前項目和視圖選擇。

0

當前項目是由焦點矩形指示的項目。您可以使用樹視圖的selectionModel函數來更改它。如果您不想更改當前選定的項目,請將QtGui.QItemSelectionModel.NoUpdate作爲第二個參數傳遞給setCurrentIndex方法。下面是一個例子:

index = model.index(3, 0); 
view.selectionModel().setCurrentIndex(index, QtGui.QItemSelectionModel.NoUpdate) 

這應該當前項目移動到該項目上,指數3

希望這會有所幫助,至於

相關問題