2012-09-22 27 views
1

我目前正在Python中設計一個QT-gui,我希望允許用戶在兩​​個QListWidgets之間切換QListWidgetItems。允許多重選擇(CTRL),並通過兩個控制按鈕完成切換。在Python中的兩個QListWidgets之間切換項目

在QT4-Designer中的名單看起來像this

因此,如果用戶選擇例如在「>」按鈕,從左側列表中的兩個項目,並點擊該項目已被添加到右邊的列表和因此從左側列表中刪除。

我現在的觸發按鈕事件是這樣的:

def switchR(self): 
    itemlistSel = self.list_left.selectedItems() 
    for item in itemlistSel: 
     self.list_right.addItem(item) 
     self.list_left.removeItemWidget(item) 

但沒有任何反應?有人得到了一個快速解決方案?

回答

2

0123'方法並不完全符合您期望的方法(請參閱docs)。使用takeItem()addItem()row()代替:

def switch(self): 
    items = self.left.selectedItems() 
    for item in items: 
     n = self.left.row(item) # get the index/row of the item 
     i = self.left.takeItem(n) # pop 
     self.right.addItem(i)  # add to right QListWidget 
+1

的作品就像一個魅力。感謝你及時的答覆。另外感謝doc-link,因爲它似乎是我迄今爲止使用了錯誤的文檔。 – Curlew