如何在pyqt qlistview中监控文件更改?

时间:2017-04-28 03:21:11

标签: python pyqt pyqt4

我在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)

1 个答案:

答案 0 :(得分:0)

Qt有一个QFileSystemWatcher类,可以监视文件是否已更改。只需使用addPath方法注册文件,然后将fileChanged信号连接到更新列表模型的插槽。

请注意,监控文件可能会消耗资源,因此请务必在detailed description of the QFileSystemWatcher中阅读有关此内容的说明。

BTW:如果QFileSystemWatcher没有成功,那么一般来说,如何监控Python中的文件更改还有this post