拖入“根目录”这个文件夹,将里面所有文件尺寸累计并以目录名组织如下。
[['根目录', {'A2': 1, 'A3': 8, 'A1': 1, 'A4': 1, 'A0': 1}],
['目录1', {'A0': 2, 'A3': 1}],
['目录2', {'A3': 8, 'A1': 1, 'A4': 1}],
['目录3', {'A0': 3, 'A1': 3}]]
嵌套列表,内部每一项的第一值表示文件所在目录,第二值表示该目录下的文件尺寸字典之和。
如何让上面这个list,可以显示在pyqt5的tableWidget中,以表格形式显示。如下图。
上图中是别人用C#写的,在pyqt5的tableWidget中,目前只看到列数固定的写法。但我遇到的这是不固定列。如何整合到一张表格中去呢?
以下是拖入单个文件时的相关代码,可以显示单个文件的尺寸字典信息。
name, suf = os.path.splitext(file)
if suf != '.pdf':
print(f"{name}不是pdf文件。")
return
# print(GetPdfsize(file))
dict_result_sizenameandcount = GetSizeNameAndCount(GetPdfsize(file))
dict_result_sizenameandcount['所在目录'] = GetDirnameOfFile(file) # 将文件的所在目录名添加到尺寸结果的字典里。name:dirname
print("当前拖拽的是文件:", dict_result_sizenameandcount)
self.tableWidget.setRowCount(1) # 设置表格行数
self.tableWidget.setColumnCount(len(dict_result_sizenameandcount)) # 设置表格列数
self.tableWidget.setHorizontalHeaderLabels(list(dict_result_sizenameandcount.keys())) # 设置表格的标题名称
i = 0
for j in dict_result_sizenameandcount.keys():
data = QTableWidgetItem(str(dict_result_sizenameandcount[j]))
self.tableWidget.setItem(0, i, data)
i += 1
是不是我这数据对于表格来说,不是完整的,根本就无法直接展示在表格中呢?也许要想办法将数据补齐,达到放入表格的行列要求。