所以我开始在github(https://github.com/BetaRavener/uPyLoader)上为uPyLoader贡献代码,这个应用程序有一个编译按钮。单击编译按钮时,它将连接到名为compile_files的插槽。以下是我的一些修改尝试的代码(如果你想查看整个文件,请在main.py中)。
我试图解决的问题是,当你编译foo.py它会创建foo.mpy并且如果foo.mpy已经存在那么你就无法确定编译是否做了什么。我想看时间戳更新。
所以我正在研究QFileSystemModel的所有内容,看看如何刷新它,但后来我通过阅读了解到,如果我没有自定义模型,那么标准模型已经为我创建了一个QFileSystemWatcher。然后我确信,这可以解释为什么一个新的.mpy会出现,如果不存在的话。此外,如果我手动删除文件,PyQt UI会更新。所以后来我很困惑为什么在我的函数下面unlink没有让文件消失然后回来。
然后我注释掉了实际的编译步骤,确定mpy文件确实消失了。所以我在插槽中了解到,我不相信更新会被处理。
Windows.System.ProcessLauncher
然后我研究了如何在插槽中刷新或重新绘制并找到了这些:
QT Repaint/Redraw/Update/Do Something!
但是我尝试了QApplication.processEvents()并没有帮助。
有人可以指出如何在插槽中更新ui。
为什么QFileSystemWatcher没有看到更新的时间戳并更新模型或QTreeView?只是好奇是否有错误或只是它是如何工作的。