我正在使用PySide2 v5.6.0在Python 3.6.5中开发Qt应用程序。该应用程序是一种用于标记成千上万张用于训练神经网络的图像的工具,并且具有一个qtablewidget,用于查看与每个图像有关的信息。
我已经实现了按标签状态/名称/等进行过滤,并且当应用过滤器时,我用mainWin.tableWidget.clearContents()
清除了表,并用新条目重新填充了表。我已经在几百张图像上进行了测试,它在不到一秒钟的时间内清除了表格。但是,当将数千个图像文件的详细信息加载到表中时,程序将挂在clearContents()方法上。我不知道它是否最终会完成,但是在某些情况下,我已经等待了30分钟以上,而且从未清除表。我的一位测试人员报告说,如果您等待足够长的时间,它将最终对大型数据集进行过滤,但这显然不是一个可行的解决方案。
尝试clear()
和setRowCount(0)
可获得相同的结果。
关于表格的唯一特别之处在于,当用户单击新行时,我已经连接了一些信号来显示图像,但是仅此而已;当我禁用这些行时,它仍然会挂起。
这是我的问题:有什么方法可以快速清除行或使用内置的qtablewidget函数对其进行过滤?
我还应该指出,我没有在表中存储图像数据。我在每个单元格中存储的所有内容都是大约10-30个字符的文本。选择图像后,它们将从磁盘加载,并且不存储在RAM中。
谢谢。