3

QTreeViewにはclicked信号がありますが、のようではありませitemChangedQTreeWidgetQTreeView「モデルベース」なので使用する必要があります。それでも、ユーザーがキーボードで行を選択すると、clicked送信されず、コールバックが呼び出されることはありません。どの信号に登録すればよいですか?

4

1 に答える 1

5

QTreeViewクラスは継承し、選択モデルQAbstractItemViewへのアクセスを提供します。

選択モデルには、現在のアイテムに加えられた変更と、マウスとキーボードの両方での選択を登録するいくつかの信号があります。

編集

明確にするために、信号は次のように接続する必要があります。

selmodel = self.listing.selectionModel()
selmodel.selectionChanged.connect(self.handleSelectionChanged)

ハンドラーの署名は次のようになります。

def handleSelectionChanged(self, selected, deselected):
    indexes = selected.indexes()
    if indexes:
        print('row: %d' % indexes[0].row())

QItemSelectionselecteddeselectedインスタンスです。

于 2012-12-17T19:00:16.967 に答える