2012-09-22 3 views
1

현재 파이썬에서 QT-gui를 디자인 중이며 사용자가 두 개의 QListWidgets간에 QListWidgetItems를 전환 할 수 있도록하고 싶습니다. 다중 선택 (CTRL)이 허용되며 두 개의 제어 버튼으로 전환이 이루어집니다. QT4 - 디자이너에서 파이썬에서 두 개의 QListWidgets 사이에 항목을 교환하십시오.

목록은 this

그래서 사용자가 '>'버튼을 예를 들어 두 개의 왼쪽 목록에서 항목 수와 클릭 수를 선택하면 항목이 오른쪽 목록에 추가 할 수 있고처럼 보인다 결과적으로 왼쪽 목록에서 삭제됩니다.

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

그러나 아무 반응이 없습니다 :

나의 현재 트리거 버튼-이벤트는 다음과 같습니다? 누군가가 빠른 해결책을 얻었습니까?

답변

2

removeItemWidget() 방법은 예상 한대로 작동하지 않습니다 (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 링크에 추가 감사드립니다. – Curlew

관련 문제