wxPython中使用StandardPaths的UseAppInfo时AppInfo_None未定义的问题
解决wxPython中StandardPaths自定义路径且不修改全局AppName的问题
在wxPython 4.2.0中,你要找的AppInfo_None对应的常量是wx.STDPATHS_APPINFO_NONE——这是wxPython对wxWidgets中wxStandardPaths::AppInfo_None枚举的命名转换(wxPython通常会将C++枚举转为大写格式并添加对应前缀)。
你可以通过以下代码实现需求:
import wx # 初始化应用(若未初始化则创建临时实例) app = wx.GetApp() or wx.App(False) standardPaths = wx.StandardPaths.Get() # 关闭自动使用应用名称等信息拼接路径 standardPaths.UseAppInfo(wx.STDPATHS_APPINFO_NONE) # 获取系统基础的LocalAppData目录(无应用名称后缀) base_local_dir = standardPaths.GetUserLocalDataDir() # 自行拼接所需的自定义目录 custom_data_dir = f"{base_local_dir}\\something_else" print(custom_data_dir) # 输出:C:\Users\john_smith\AppData\Local\something_else
补充说明:
- 调用
UseAppInfo(wx.STDPATHS_APPINFO_NONE)后,GetUserLocalDataDir()只会返回系统级的基础路径(如Windows下的C:\Users\用户名\AppData\Local),不会自动追加应用名称。 - 这种方式不会修改全局的
AppName,完全避免影响其他依赖应用名称的业务场景。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

