zoukankan      html  css  js  c++  java
  • pyqt5--列表控件QListWidget

    列表控件可以让我们以列表形式呈现内容,是界面更加有序美观。QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个QListWidgetItem。这也是为什么我们说QListWidget是一个基于项(Item-based)的控件了

    样式:

     1 import sys
     2 from PyQt5.QtGui import QPixmap
     3 from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QListWidget, QListWidgetItem, QHBoxLayout
     4 
     5 class Demo(QWidget):
     6     def __init__(self):
     7         super(Demo, self).__init__()
     8         self.pic_label = QLabel(self)
     9         self.pic_label.setPixmap(QPixmap('arrow.png'))
    10 
    11         self.listwidget_1 = QListWidget(self)  #实例化列表控件
    12         self.listwidget_2 = QListWidget(self)
    13         self.listwidget_1.doubleClicked.connect(lambda: self.change_func(self.listwidget_1))
    14         #双击列表控件时发出信号
    15         self.listwidget_2.doubleClicked.connect(lambda: self.change_func(self.listwidget_2))
    16 
    17 
    18         for i in range(6):  
    19             text = 'Item {}'.format(i)
    20             self.item = QListWidgetItem(text)  #把字符串转化为QListWidgetItem项目对象
    21             self.listwidget_1.addItem(self.item)  #添加项目
    22 
    23         self.item_6 = QListWidgetItem('Item 6', self.listwidget_1)  # 实例化后直接添加
    24 
    25         self.listwidget_1.addItem('Item 7')  #直接添加项目,不用QListWidgetItem对象,【功能可能不全】
    26         str_list = ['Item 9', 'Item 10']
    27         self.listwidget_1.addItems(str_list)  #添加项目-列表
    28 
    29         self.item_8 = QListWidgetItem('Item 8')
    30         self.listwidget_1.insertItem(8, self.item_8)  #插入项目。参数1:索引号,参数2:项目
    31         # self.listwidget_1.insertItem(8, 'Item 8')
    32 
    33         self.h_layout = QHBoxLayout()
    34         self.h_layout.addWidget(self.listwidget_1)
    35         self.h_layout.addWidget(self.pic_label)
    36         self.h_layout.addWidget(self.listwidget_2)
    37         self.setLayout(self.h_layout)
    38 
    39         self.listwidget_1.itemClicked.connect(self.d)  #单击列表控件时发出信号
    40         self.listwidget_1.currentItemChanged.connect(self.g)  #当前项目发生变化时发出信号
    41         self.listwidget_1.addItem('Item_11')
    42 
    43 
    44     def g(self):
    45         print('项目总数发生了改变')
    46 
    47     def d(self):
    48         print('你单击了列表控件')
    49 
    50 
    51     def change_func(self, listwidget):
    52         if listwidget == self.listwidget_1:
    53             item = QListWidgetItem(self.listwidget_1.currentItem())  #转化为QListWidgetItem对象
    54             # self.listwidget_1.currentItem()   返回当前项目。是个对象。<PyQt5.QtWidgets.QListWidgetItem object at 0x0000008425463A68>
    55             self.listwidget_2.addItem(item)  #添加项目。参数是QListWidgetItem对象
    56             print(self.listwidget_2.count()) #返回项目总数
    57 
    58 
    59         else:
    60             self.listwidget_2.takeItem(self.listwidget_2.currentRow())#删除指定索引号的项目
    61             #self.listwidget_2.currentRow()    返回当前项目的行索引号
    62             print(self.listwidget_2.count())
    63 
    64 
    65 if __name__ == '__main__':
    66     app = QApplication(sys.argv)
    67     demo = Demo()
    68     demo.show()
    69     sys.exit(app.exec_())

    self.list_widget.currentIndex().row()   返回列表控件当前选中的索引号

  • 相关阅读:
    java jmap,jstat等工具的使用
    jvm 参数配置
    python NameError: name 'false' is not defined
    aiflow Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
    TX 笔试题总结
    POJ 3140 Contestants Division
    POJ 1018 Communication System
    POJ 3260 The Fewest Coin
    Leetcode: Median of two sorted Array
    基础知识 (二)
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10373966.html
Copyright © 2011-2022 走看看