簡體   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