需求场景
打算用python开发一款自用的工具箱,目前预设密码本和个人词典功能。因为个人的前端能力有限,所以放弃了基于flask的BS架构,转投pyqt5。但整个过程仍然遇到不少坑。
这篇文章旨在分享一个pyqt5 TableView控件清空数据的解决方案,同时也向广大网友寻求更优的解法。

如上图所示,最初的效果明显有问题:预期的效果是每次查询只显示当前条件下的查询结果,但实际却是将查询结果覆盖到了首行。
因此需要解决的问题就是如何在查询前先清空TableView控件中原有的数据。
寻求方案
网上转了一圈,提供的解决方案无外乎就是从model下手(答案大同小异,有的甚至文案都一模一样...╮(╯▽╰)╭)。
我使用的是QStandardItemModel,因此就有了QStandardItemModel().clear()和QStandardItemModel().removeRows(row,count)两种方法。两种方法的效果大致相同,不过clear()会连表头一起清理掉(这倒是可以在清理后再设置一次)。实际效果如下:

这个结果……多少有点一言难尽。这两个方法都会破坏TableVie

文章讲述了作者在使用Python的PyQt5库开发工具箱时遇到的问题,主要聚焦于如何清空TableView的数据。作者尝试了QStandardItemModel的clear()和removeRows()方法,但发现这些方法并不理想。最终,作者采用了一种迭代单元格并插入空字符串的“曲线救国”方法来视觉上清空数据。此外,文章还提及了代码分离、UI设计(如使用uic.loadUi()的挑战)以及其他开发中遇到的难题。

2811

被折叠的 条评论
为什么被折叠?



