如何使 Gnome 面板小程序(用 python 编写)为每个实例存储单独的设置?

发布于 2024-12-01 01:25:40 字数 266 浏览 1 评论 0原文

有人大约一年前问过这个问题但我无法将任何一个答案转化为可用的代码。接受的答案似乎引用了一个 C 函数(我找不到等效的 python 函数),另一个引用了一个对我不起作用的 python 函数(applet.get_preferences_key() 返回 None)。做什么?例子会很棒...

Someone asked this question about a year ago but I was unable to turn either of the answers into usable code. The accepted answer seemed to reference a C function (I could find no python equivalent) and the other one referenced a python function that did not work for me (applet.get_preferences_key() returns None). wat do? Examples would be awesome...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

末が日狂欢 2024-12-08 01:25:40

由于某种原因,我无法访问其他问题的已接受答案中链接的页面。但是,您可以通过 PyGObject 自省访问 GConf C 库:
从 gi.repository 导入 GConf。因此,他们推荐的功能(如果我可以加载网页来查看的话)大概可以在 Python 中使用。请注意,如果您的小程序完全使用 pygtk,则可能会与使用 PyGObject 自省发生冲突(尽管我认为如果您仅对 GConf 而不是 GTK 使用自省,那么应该没问题)。

以下是通过内省得到的 GConf 内容:

['ChangeSet',
 'ChangeSetForeachFunc',
 'Client',
 'ClientClass',
 'ClientErrorHandlerFunc',
 'ClientErrorHandlingMode',
 'ClientNotifyFunc',
 'ClientPreloadType',
 'Entry',
 'EnumStringPair',
 'Error',
 'ListenersForeach',
 'ListenersPredicate',
 'UnsetFlags',
 'Value',
 'ValueType',
 '__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__file__',
 '__format__',
 '__getattr__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__loader__',
 '__module__',
 '__name__',
 '__new__',
 '__path__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 '_introspection_module',
 '_load',
 '_namespace',
 '_overrides_module',
 '_version',
 'concat_dir_and_key',
 'debug_shutdown',
 'enum_to_string',
 'error_quark',
 'escape_key',
 'init',
 'is_initialized',
 'key_is_below',
 'postinit',
 'preinit',
 'string_to_enum',
 'unescape_key',
 'unique_key',
 'valid_key',
 'value_decode']

I can't access the pages linked in the accepted answer from the other question for some reason. However, you can access the GConf C libraries through PyGObject introspection:
from gi.repository import GConf. So, the function that they recommend (if only I could load the web page to see), is presumably available in Python. Note that if your applet is using pygtk at all, there might be conflicts with using PyGObject introspection (though I think if you're using introspection only for GConf and not for GTK, you should be OK).

Here are the contents of GConf via introspection:

['ChangeSet',
 'ChangeSetForeachFunc',
 'Client',
 'ClientClass',
 'ClientErrorHandlerFunc',
 'ClientErrorHandlingMode',
 'ClientNotifyFunc',
 'ClientPreloadType',
 'Entry',
 'EnumStringPair',
 'Error',
 'ListenersForeach',
 'ListenersPredicate',
 'UnsetFlags',
 'Value',
 'ValueType',
 '__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__file__',
 '__format__',
 '__getattr__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__loader__',
 '__module__',
 '__name__',
 '__new__',
 '__path__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 '_introspection_module',
 '_load',
 '_namespace',
 '_overrides_module',
 '_version',
 'concat_dir_and_key',
 'debug_shutdown',
 'enum_to_string',
 'error_quark',
 'escape_key',
 'init',
 'is_initialized',
 'key_is_below',
 'postinit',
 'preinit',
 'string_to_enum',
 'unescape_key',
 'unique_key',
 'valid_key',
 'value_decode']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文