[英]How do I listen for a DBus signal in a GTK (python 3, Gio) app?
[英]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.