Paepoi » PyGObject Tips » Gtk(PyGObject) Tips | GtkSettings
Gtk(PyGObject) Tips | GtkSettings
# 最終更新日 2019.08.25
2019 年現在の仕様に追記と書き換え。
暗い外観のダークテーマにするのに必須です。
又アプリ内で使うフォントやタイトルバー右クリックの設定をデフォルトから変更等もできます。
詳しくは devhelp で、プロパティの変更が結構多いので利用する場合は慎重に。
2019 年現在の仕様に追記と書き換え。
GtkSettings
GtkSettings は GdkScreen 内(ウインドウを表示している領域内)の設定です。暗い外観のダークテーマにするのに必須です。
又アプリ内で使うフォントやタイトルバー右クリックの設定をデフォルトから変更等もできます。
詳しくは devhelp で、プロパティの変更が結構多いので利用する場合は慎重に。
#!/usr/bin/env python3 import sys, gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GObject class Win(Gtk.ApplicationWindow): ''' GSettings ではなくこのアプリ内のみ変更されます 存在しないフォント(編集中含む)はデフォルトが適用される ''' def __init__(self, app): Gtk.ApplicationWindow.__init__(self, application=app, title='Py') # GtkSettings self.settings = Gtk.Settings.get_default() # ListBox listbox = Gtk.ListBox(selection_mode=Gtk.SelectionMode.NONE) # ダークテーマ label_dt = Gtk.Label(label='ダークテーマ') switch_dt = Gtk.Switch() GObject.Binding.bind_property( switch_dt, 'active', self.settings, 'gtk_application_prefer_dark_theme', GObject.BindingFlags.BIDIRECTIONAL ) hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hbox.pack_start(label_dt, False, False, 0) hbox.pack_end(switch_dt, False, False, 0) listbox.insert(hbox, 0) # font label_fn = Gtk.Label(label='font') entry_fn = Gtk.Entry(text=self.settings.props.gtk_font_name) GObject.Binding.bind_property( entry_fn, 'text', self.settings, 'gtk_font_name', GObject.BindingFlags.BIDIRECTIONAL ) hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hbox.pack_start(label_fn, False, False, 0) hbox.pack_end(entry_fn, False, False, 0) listbox.insert(hbox, 1) # Pack self.add(listbox) self.set_border_width(10) self.show_all() class App(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_startup(self): Gtk.Application.do_startup(self) Win(self) def do_activate(self): self.props.active_window.present() app = App() app.run(sys.argv)
Copyright(C) sasakima-nao All rights reserved 2002 --- 2024.