当日志文件更新时,动态更新ListView。

问题描述 投票:0回答:1

我有一个.txt格式的日志文件,正在持续更新。然后我想在ListView(PyQt5)中动态显示文件内容。

pyqt5 python-3.7
1个回答
0
投票

使用 QFileSystemWatcher 来检测你的文件何时被修改。

一个简单的例子。

class LogWatcher(QObject):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.watcher = QFileSystemWatcher()
        self.watcher.addPath("./foobar.txt") # The file you want to check
        self.watcher.fileChanged.connect(self.displayLine)

    def displayLine(self, path): # Will be called when the file has changed
        print(path, "has changed")

if __name__ == '__main__':
    app = QtWidgets.QApplication([])

    logger = LogWatcher()

    sys.exit(app.exec_())

每当文件foobar.txt发生变化时,方法 displayLine 叫做

© www.soinside.com 2019 - 2024. All rights reserved.