pyqt 实现左列表向右列表添加

摘要:
渲染:双击左侧的列表以添加右侧的列表,双击右侧的列表以删除节点。

效果图:

pyqt 实现左列表向右列表添加第1张

 双击左侧列表加入右侧列表,右侧列表双击删除节点。

代码:

import sys
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QListWidget, QListWidgetItem, QHBoxLayout


class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.pic_label = QLabel(self)  # 1
        self.pic_label.setPixmap(QPixmap('arrow.png'))

        self.listwidget_1 = QListWidget(self)  # 2
        self.listwidget_2 = QListWidget(self)
        self.listwidget_1.doubleClicked.connect(lambda: self.change_func(self.listwidget_1))
        self.listwidget_2.doubleClicked.connect(lambda: self.change_func(self.listwidget_2))

        for i in range(6):  # 3
            text = 'Item {}'.format(i)
            self.item = QListWidgetItem(text)
            self.listwidget_1.addItem(self.item)

        self.item_6 = QListWidgetItem('Item 6', self.listwidget_1)  # 4

        self.listwidget_1.addItem('Item 7')  # 5
        str_list = ['Item 9', 'Item 10']
        self.listwidget_1.addItems(str_list)

        self.item_8 = QListWidgetItem('Item 8')  # 6
        self.listwidget_1.insertItem(8, self.item_8)
        # self.listwidget_1.insertItem(8, 'Item 8')

        self.h_layout = QHBoxLayout()
        self.h_layout.addWidget(self.listwidget_1)
        self.h_layout.addWidget(self.pic_label)
        self.h_layout.addWidget(self.listwidget_2)
        self.setLayout(self.h_layout)

    def change_func(self, listwidget):  # 7
        if listwidget == self.listwidget_1:
            item = QListWidgetItem(self.listwidget_1.currentItem())
            self.listwidget_2.addItem(item)
            print(self.listwidget_2.count())
        else:
            self.listwidget_2.takeItem(self.listwidget_2.currentRow())
            print(self.listwidget_2.count())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = Demo()
    demo.show()
    sys.exit(app.exec_())

  告辞

免责声明:文章转载自《pyqt 实现左列表向右列表添加》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spark保存读取csv SequenceFileC++奇数阶幻方(主动生成)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

同时安装PyQt4和PyQt5之sip版本区分

如果同时安装了PyQt4和PyQt5(自己编译或者安装预编译版本),在运行某个PyQt4或者PyQt5的Python脚本时,很有可能出现以下的错误提示: RuntimeError: the sip module implements API vX.X but the PyQt5.QtCore module requires API vY.Y 本文帮助大家解...

自定义实现 PyQt5 下拉复选框 ComboCheckBox

一、前言 由于最近的项目需要具有复选功能,但过多的复选框会影响界面布局和美观,因而想到把 PyQt5 的下拉列表和复选框结合起来,但在 PyQt5 中并没有这样的组件供我们使用,所以想要自己实现一个下拉复选框,主要就是继承 QComboBox 类,然后将复选框 QCheckBox 加入其中,并实现相应的功能。 最终实现的下拉复选框效果如下: 二、代码实现...

基于pyqt的电子时钟

基于pyqt的电子时钟 介绍 通过电子时钟完成了基于pyqt的一个综合项目,其中包括UI界面与逻辑代码分离设计的思想,更新界面在主线程中完成,逻辑代码在子线程中完成。子线程的处理结果通过信号发送给主线程进行更新界面。子线程通过继承主线程来访问主线程的共享资源,主线程通过对象方法来访问子线程的资源。涉及多线程和线程休眠与唤醒等功能。 软件架构 操作系统...

在PyQt中构建 Python 菜单栏、菜单和工具栏

摘要:菜单、工具栏和状态栏是大多数GUI 应用程序的常见且重要的图形组件。您可以使用它们为您的用户提供一种快速访问应用程序选项和功能的方法。 本文分享自华为云社区《Python 和 PyQt:创建菜单、工具栏和状态栏》,作者:Yuchuan。 在使用 Python 和PyQt开发图形用户界面 (GUI)应用程序时,您将使用的一些最有用和最通用的图形元素是...

pycharm添加pyqt工具

步骤: 1. pycharm添加designer File->Setting->Tools->External Tools-> Program:/home/yuandanfei/anaconda3/bin/designer Working directory:$ProjectFileDir$ 2. Pycharm添加pyuci F...

[ PyQt入门教程 ] PyQt5中多线程模块QThread使用方法

本文主要讲解使用多线程模块QThread解决PyQt界面程序唉执行耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题。用户使用工具过程中出现这些问题时会误以为程序出错,从而把程序关闭。这样,导致工具的用户使用体验不好。下面我们通过模拟上述出现的问题并讲述使用多线程QThread模块解决此类问题的方法。 PyQt程序卡顿和无法实时显示问题现象 使...