1

我目前正在用 Python 设计一个 QT-gui,我希望允许用户在两​​个 QListWidgets 之间切换 QListWidgetItems。允许多选 (CTRL),并通过两个控制按钮进行切换。

在 QT4-Designer 中,列表看起来像这样

因此,如果用户从左侧列表中选择例如两个项目并单击“>”按钮,则必须将项目添加到右侧列表中,然后从左侧列表中删除。

我当前触发的按钮事件如下所示:

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

但是什么都没有发生?有人有快速解决方案吗?

4

1 回答 1

2

removeItemWidget()方法并不完全符合您的预期(请参阅文档)。使用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
于 2012-09-22T20:34:30.513 回答