zoukankan      html  css  js  c++  java
  • pyqt 实现左列表向右列表添加

    效果图:

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

    代码:

    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_())
    

      告辞

  • 相关阅读:
    GNU binutils工具使用(转)
    wget下载整个网站
    Qt中使用第三方的数据库(Sqlite)存储并读取文件本体
    thinkpad T400不能hibernate解决方案,ubuntu 10.10
    android 2.3 StrictMode 使用
    N900 Dual boot(meego& maemo)
    maemo环境安装问题和解决方案(ubuntu 10.04)
    shell中判断一个参数是否为整型
    linux中的块设备和字符设备(转)
    对聊天室调试总结
  • 原文地址:https://www.cnblogs.com/wohuiyijiu/p/12809077.html
Copyright © 2011-2022 走看看