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

      告辞

  • 相关阅读:
    sublime text 怎么浏览包
    postman 中url有动态变换的值时,可以按下面方式变换。
    mac jmeter安装
    mysql 更改密码
    Jenkins启动报端口被占用,解决办法FAILED ServerConnector@2a265ea9{HTTP/1.1}{0.0.0.0:8080}: java
    ajax无法跳转页面的问题,
    EF查询性能优化相关
    code first从入门到伪精通
    自适应Bootstrap学习
    每月分享github上有意思的项目
  • 原文地址:https://www.cnblogs.com/wohuiyijiu/p/12809077.html
Copyright © 2011-2022 走看看