【问题标题】:Switch items between two QListWidgets in python在python中的两个QListWidget之间切换项目
【发布时间】:2012-09-22 19:42:36
【问题描述】:

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

在 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 )

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

【问题讨论】:

    标签: python qt4 pyqt


    【解决方案1】:

    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
    

    【讨论】:

    • 就像一个魅力。感谢您及时回复。额外感谢文档链接,因为到目前为止我使用了错误的文档。
    猜你喜欢
    • 2021-09-14
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多