我在Qlistview中打开一个文件,如果文件发生了变化,可能会删除一行或者一行更改,我希望它也能在qlistview上显示。我怎么能这样做?
我的qlistview非常标准,如下所述。基本上我要求的是一种自动刷新qlistview的方法,同时以某种方式检测到更改......
with open(filex, "r") as f:
for line in f:
self.item = QtGui.QStandardItem(line)
self.item.setCheckable(True)
self.item.setCheckState(QtCore.Qt.Unchecked)
self.model.appendRow(self.item)
self.list_view.setModel(self.model)
答案 0 :(得分:0)
Qt有一个QFileSystemWatcher
类,可以监视文件是否已更改。只需使用addPath
方法注册文件,然后将fileChanged
信号连接到更新列表模型的插槽。
请注意,监控文件可能会消耗资源,因此请务必在detailed description of the QFileSystemWatcher中阅读有关此内容的说明。
BTW:如果QFileSystemWatcher
没有成功,那么一般来说,如何监控Python中的文件更改还有this post。