小编Gus*_*ste的帖子

以非 GUI 代码访问 fbs 资源文件

使用fbs打包 PyQt5 应用程序,从非 GUI 代码访问资源文件的最干净方法是什么?

在下面的示例中,我制作了一个简单的 PyQt5 应用程序,其中一个窗口包含一个按钮。该按钮触发一个函数,该函数将读取.json资源文件并message在控制台中打印其属性。logic.py 中print_data()定义的函数也应该在没有 GUI 应用程序的情况下工作,例如供其他 python 脚本使用。因此,它不能作为 MainWindow 类的方法移动。

使用应用程序上下文的get_resource()方法来获取mainwindow.ui的路径既简单又方便。不幸的是,它不能用于print_data()获取static_data.json的路径,因为该函数无法访问应用程序上下文。

最好的解决方案是什么?

  • fbs 的资源系统仅用于 gui 相关的资源文件,而将static_data.json与 python 文件一起使用?
  • 尝试访问 MainWindow 类之外的应用程序上下文?
  • 使用另一个python资源库如pkg_resources来处理非gui相关的资源文件?
  • 使用cx_freeze等其他工具打包app?

目录结构:

|-- src
|  |-- main
|  |  |-- python
|  |  |  |-- main.py
|  |  |  |-- gui.py
|  |  |  |-- logic.py
|  |  |-- resources …
Run Code Online (Sandbox Code Playgroud)

python pyqt5 fbs

3
推荐指数
1
解决办法
423
查看次数

标签 统计

fbs ×1

pyqt5 ×1

python ×1