Python QTreeView/QStandardItemModel中的选定行

Python QTreeView/QStandardItemModel中的选定行,python,pyqt4,Python,Pyqt4,我正在尝试使用QTreeView和QStandardItemModel在PyQt4中实现一个帐户结构(带有子帐户)。经过多次尝试和错误,我终于准备好了树状视图。现在,我希望在树视图中单击特定行时发生一些事情。我在GTK工具包中的经验表明,我会在单击某一行时听到某种发出的信号,然后编写一个信号处理程序来找出单击了哪一行。我不知道如何在PyQt中执行此操作。有什么建议吗?课堂上有信号&可供使用。此信号功能由继承 来自该信号的数据是类,因此该类可以获取您的模型数据 榜样 import sys from

我正在尝试使用QTreeView和QStandardItemModel在PyQt4中实现一个帐户结构(带有子帐户)。经过多次尝试和错误,我终于准备好了树状视图。现在,我希望在树视图中单击特定行时发生一些事情。我在GTK工具包中的经验表明,我会在单击某一行时听到某种发出的信号,然后编写一个信号处理程序来找出单击了哪一行。我不知道如何在PyQt中执行此操作。有什么建议吗?

课堂上有信号&可供使用。此信号功能由继承

来自该信号的数据是类,因此该类可以获取您的模型数据

榜样

import sys
from PyQt4 import QtGui

class QCustomTreeView (QtGui.QTreeView):
    def __init__ (self, parentQWidget = None):
        super(QCustomTreeView, self).__init__(parentQWidget)
        self.pressed.connect(self.myPressedEvent)

    def myPressedEvent (self, currentQModelIndex):
        # Use QModelIndex to show current data pressed
        print currentQModelIndex.column(), currentQModelIndex.row()
        print currentQModelIndex.data().toString()
        # Also can implement your QStandardItemModel here
        currentQStandardItemModel = currentQModelIndex.model()

myQApplication = QtGui.QApplication([])
myQTreeView = QCustomTreeView()
headerQStandardItemModel = QtGui.QStandardItemModel()
headerQStandardItemModel.setHorizontalHeaderLabels([''] * 4)
myQTreeView.setModel(headerQStandardItemModel)
# Append data row 1
row1QStandardItem = QtGui.QStandardItem('ROW 1')
row1QStandardItem.appendRow([QtGui.QStandardItem(''), QtGui.QStandardItem('1'), QtGui.QStandardItem('3'), QtGui.QStandardItem('5')])
headerQStandardItemModel.appendRow(row1QStandardItem)
# Append data row 2
row2QStandardItem = QtGui.QStandardItem('ROW 2')
row2QStandardItem.appendRow([QtGui.QStandardItem(''), QtGui.QStandardItem('2'), QtGui.QStandardItem('4'), QtGui.QStandardItem('6')])
headerQStandardItemModel.appendRow(row2QStandardItem)
myQTreeView.show()
sys.exit(myQApplication.exec_())

请向我们展示您目前拥有的代码。