是否有一种方式来获得和更改当前行中的QTreeView则(不QTreeWidget)?通过积极的,我指的是重点亮点,而不是选定行的行。 Paint事件,我可以用QStyle.State_HasFocus
获得活动行,但是这似乎并没有在其他地方工作。
你可以得到/与currentIndex()
和setCurrentIndex()
功能,你可以在这两个QTreeView
和QItemSelectionModel
找到设置活动行(后者由QTreeView.selectionModel()
返回)。
尽管它的名字,在QItemSelectionModel
处理视图当前项目,并独立于视图选择。
当前项是由焦点矩形所指示的一个。您可以使用selectionModel树视图的功能改变。如果你不希望改变当前选择的项目,通过QtGui.QItemSelectionModel.NoUpdate为setCurrentIndex方法的第二个参数。下面是一个例子:
index = model.index(3, 0);
view.selectionModel().setCurrentIndex(index, QtGui.QItemSelectionModel.NoUpdate)
这应该目前的项目移动到该项目上,指数3
希望这有助于问候
对于我来说,没有什么新在这里要问这样的问题,为什么?因为简单;您可以使用Qt的设计师和创造QTreeView
,然后创建行编辑,然后使用动作编辑器将它们链接,那么UI文件转换成PY文件,然后你会看到事情的幕后是如何工作的。
如果你尝试,你会发现这一点:
QtCore.QObject.connect(self.treeView, QtCore.SIGNAL(_fromUtf8("clicked(QModelIndex)")), self.test)