2016-08-01 9 views
0

QTreeWidgetItemをプッシュボタンがプッシュされている場合はコピーしたいと思います。QPushButtonアイテムウィジェットからQTreeWidgetItemをコピーする

は、これまでのところ私が持っている:

def Copy(self): 
    obj = self.sender() 

self.Tree = qt.QTreeWidget(self) 
self.Tree.setHeaderLabels(["Name"]) 

item = qt.QTreeWidgetItem("Name") 
self.Tree.addTopLevelItem(item) 

childItem = qt.QTreeWidgetItem("Name") #<------- This I'd like to copy 

item.addChild(childItem) 

bttn = qt.QPushButton("Copy This Widget", self) 
bttn.clicked.connect(self.Copy) 

self.Tree.setItemWidget(childItem, 1, bttn) 

私はQTreeWidgetに置くことができるように、私は、childItemをコピーできるようにしたいと思います。

答えて

1

QTreeWidgetItemをアイテムウィジェットから直接入手する方法はないため、あとでアクセスできるようにインデックスを明示的に格納する必要があります。これを行うには

一つの方法は、プロパティとしてアイテムウィジェットにインデックスを追加することです:

bttn = qt.QPushButton("Copy This Widget", self) 
index = QtCore.QPersistentModelIndex(self.Tree.indexFromItem(childItem)) 
bttn.setProperty('index', index)  

... 

def Copy(self): 
    index = self.sender().property('index') 
    if index.isValid(): 
     copyItem = qt.QTreeWidgetItem(self.Tree.itemFromIndex(index)) 
+0

さて私は、ボタンが押されたからQTreeWidgetItemをコピーしようとしています。 @vandelay。 – vandelay

+0

あなたの質問はかなり不明ですが、私の更新された答えを見てください。 – ekhumoro

関連する問題