请看下面的详细讲解:
PyQt5 QListWidget-获取批量大小
一、QListWidget概述
QListWidget
是Qt中的一个用于展示一个列表的控件,相对于QListView
来说简单易用,它可以用于展示简单的文本、图片等,还可以支持多选和拖拽操作。
二、获取批量大小
如果我们想获取QListWidget
中选中项的个数,我们可以使用selectedItems()
方法,该方法返回一个包含所有选中项的列表。我们可以通过取列表的长度来获取选中项的个数。
示例1:获取选中项的个数
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 200, 200)
self.setWindowTitle('获取选中项的个数')
qlist_widget = QListWidget()
for i in range(10):
qlist_widget.addItem('item {}'.format(i))
btn = QPushButton('获取选中项的个数', self)
btn.move(20, 160)
btn.clicked.connect(lambda: print(len(qlist_widget.selectedItems())))
v_box = QVBoxLayout()
v_box.addWidget(qlist_widget)
self.setLayout(v_box)
if __name__ == '__main__':
app = QApplication([])
my_widget = MyWidget()
my_widget.show()
app.exec_()
图例1:获取选中项的个数
在这个示例中,我们创建了一个QListWidget
,然后向其中添加了10个项。同时,我们创建了一个QPushButton
,当点击该按钮时,就会打印当前选中项的个数。运行程序,选中其中的两个项,点击按钮,会在控制台中输出2
,表示当前有2个项被选中。
如果我们想获取选中项的大小,即所有选中项所占的空间大小,我们可以使用selectedIndexes()
方法,该方法返回一个包含所有选中项的索引列表。我们可以遍历这个索引列表,累加每个选中项的大小,最终得到所有选中项的大小之和。
示例2:获取选中项的大小之和
import os
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 200, 200)
self.setWindowTitle('获取选中项的大小之和')
qlist_widget = QListWidget()
for i in range(10):
file_path = 'file{}.txt'.format(i)
with open(file_path, 'w') as f:
f.write('a' * (i + 1))
item = qlist_widget.addItem(file_path)
btn = QPushButton('获取选中项的大小之和', self)
btn.move(20, 160)
btn.clicked.connect(lambda: self.get_selected_items_size(qlist_widget))
v_box = QVBoxLayout()
v_box.addWidget(qlist_widget)
self.setLayout(v_box)
def get_selected_items_size(self, qlist_widget):
size = 0
for index in qlist_widget.selectedIndexes():
file_path = qlist_widget.itemFromIndex(index).text()
size += os.path.getsize(file_path)
print('选中项的大小之和为:{} 字节'.format(size))
if __name__ == '__main__':
app = QApplication([])
my_widget = MyWidget()
my_widget.show()
app.exec_()
图例2:获取选中项的大小之和
在这个示例中,我们创建了一个QListWidget
,向其中添加了10个文件路径,这10个文件的内容由一定数量的字母组成,字母数量越多,文件就越大。当我们点击“获取选中项的大小之和”
按钮时,程序会遍历选中项的索引列表,计算并输出选中项的大小之和。
以上就是使用QListWidget
获取批量大小的方法和实例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QListWidget – 获取批量大小 - Python技术站