2

QTreeWidgetアイテムが編集可能で起動可能な場所を作成したいと思います。Windowsエクスプローラーのように動作させたい:

シングルクリック->選択

以前に選択したアイテムをシングルクリック->LineEditを開いて名前を編集します

ダブルクリック->「起動」を実行

itemClicked()そこで、とのスロットを作成しましたitemDoubleClicked()。最初のものは次のとおりです。

def EditName(self, item, column):
    if self.lastclick == item:
        self.editItem(item)
    self.lastclick = item

2つ目は、ファイルを「起動」するだけです。

ただし、この種のソリューションでは、ダブルクリックと2回の連続クリックを区別しないため、ダブルクリックQLineEdit後も表示されます。エディターを強制的に削除することはできますか?アイテムを非表示にして表示するなどのハックソリューションを試しましたが、機能しませんでした。

4

1 に答える 1

4

QTreeWidgetItemにフラグを設定してItemIsEditableオプションを含め、QTreeWidgetでSelectedClickの編集トリガーを設定するだけです。

def populate( self, tree ):
    tree.setEditTriggers(tree.SelectedClicked)
    for i in range(10):
        item = QTreeWidgetItem(['Testing %02i' % i])
        item.setFlags(item.flags() | item.ItemIsEditable)
于 2012-09-02T17:49:17.200 に答える