繁体   English   中英

为什么 Gio.Settings 不影响

[英]Why Gio.Settings do not affect

我想使用 Python 来设置用户环境。 但我不明白为什么这段代码不起作用?

环境:

Ubuntu 18.04.1
Python 2.7.15rc1
python-gi 3.26.1-2
libgtk-3-0: 3.22.30-1ubu

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk,Gio

gsettings = Gio.Settings.new('org.gnome.shell.extensions.dash-to-dock')
gsettings.set_int('dash-max-icon-size', 16)
gsettings.apply()

并执行此代码,如sudo python /home/username/Documents/setup.py

正如您所说,您的目标是设置您的用户环境。 当您使用sudo命令运行您的代码时,您是以超级用户的身份运行它,因此您实际上是在更改root的环境!

至于为什么.apply() :当您使用Gio.Settings.new()实例化设置时,就像您所做的那样,更改会立即应用。 来自.apply()的官方文档

应用对设置所做的任何更改。 除非 self 处于“延迟应用”模式,否则此函数不执行任何操作; 参见 Gio.Settings.delay()。 在正常情况下,设置总是立即应用

当我从命令行中删除sudo时,这段代码开始工作。 所以我运行这段代码就像python /home/username/Documents/setup.py现在按预期工作了吗? 但为什么?

...并且代码在没有gsettings.apply()情况下工作,所以我评论了这一行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM