我有一個GTK3GUI,由一個簡單的Python 3代碼呼叫。圖示位于/usr/share/icons/hicolor/scalable/actions/目錄中。我目前的主題顏色是深色的,圖示看起來是白色的。當我切換到白色系統主題時,GUI圖示變成了黑色。但是在我的代碼中,當深色主題被激活時,圖示看起來是黑色而不是白色。
當我從Glade程式中選擇圖示名稱(icon-symbolic)并保存UI檔案時,它是有效的。圖示檔案是一個簡單的黑色方形.svg檔案(用Inkscape繪制)。
有什么辦法可以解決這個問題?
OS: Debian-like Linux, Python 3, GTK 3.24。
簡單的Python代碼:
import gi
gi.require_version('Gtk'/span>, '3.0')
from gi.repository import Gtk, GdkPixbuf
builder = Gtk.Builder()
builder.add_from_file('test.ui')
window1 = builder.get_object('window1')
button1 = builder.get_object('button1')
class Signals。
def on_window1_destroy(self, widget)。
Gtk.main_quit()
builder.connect_signals(Signals())
window1.set_icon_name("icon-symbolic"/span>)
window1.show_all()
Gtk.main()
簡單的UI檔案:
<?xml version="1.0"/span> encoding="UTF-8"/span>?
<!--生成與 glade 3.38.2 -->
<介面>
<需要lib="gtk "版本="3.20"/>
<object class="GtkWindow" id="window1">
<property name="can-focus">False</property>
<property name="default-width">300</property>
<property name="default-height">300< /property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid"/span>>
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>。
<object class="GtkButton" id="button1">
<property name="label"/span> translatable="yes"/span>>。 按鈕1</property>。
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receive-default">True</property>
</object>。
<包裝>。
<property name="left-attach">0</property>
<property name="top-attach"> 0</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
uj5u.com熱心網友回復:
我已經找到了一個自動改變視窗標題欄上圖示顏色的解決方案。我使用了Gtk.HeaderBar來代替默認的視窗標題欄,并在標題欄的左邊添加了一個Gtk.Image(其名稱為image_headerbar)。
image_headerbar.set_from_icon_name("icon-symbolic", -1)
當系統主題變為白色/深色時,圖示的顏色會自動變為深色/白色。
我已經嘗試了幾種方法來動態改變視窗標題欄上的圖示顏色。但如果不使用 Gtk.HeaderBar,它們都不起作用。
但是當使用Gtk.HeaderBar時,視窗標題欄的高度比默認的視窗標題欄要大一些(在XFCE桌面環境下測驗)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333057.html
標籤:
