Имеется вот такой макет.
В нём работает Gtk.CssProvider.
Имеется меню из трёх тем и три файла CSS.
Может быть кто нибудь подскажет как из функции вытащить данные файлов CSS и "запихать" их в провайдер?
Заранее благодарен.
В нём работает Gtk.CssProvider.
Имеется меню из трёх тем и три файла CSS.
Может быть кто нибудь подскажет как из функции вытащить данные файлов CSS и "запихать" их в провайдер?
Заранее благодарен.
Код:
#!/usr/bin/env/python3
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk, Gio
class MyWindow(Gtk.Window):
def __init__(self):
super().__init__(title="sablon")
grid = Gtk.Grid()
grid.set_column_spacing(10)
grid.set_row_spacing(10)
self.add(grid)
self.menubar = Gtk.MenuBar()
self.menubar.set_hexpand(True)
self.subMenu1 = Gtk.Menu()
self.menuTheme = Gtk.MenuItem(label = "Темы")
self.menubar.append(self.menuTheme)
self.itemBanan = Gtk.MenuItem(label = "Банан")
self.itemPerl = Gtk.MenuItem(label = "Жемчуг")
self.itemBisq = Gtk.MenuItem(label = "Бисквит")
self.subMenu1.append(self.itemBanan)
self.subMenu1.append(self.itemPerl)
self.subMenu1.append(self.itemBisq)
self.menuTheme.set_submenu(self.subMenu1)
self.itemBanan.connect("activate", self.themeSwap)
self.itemPerl.connect("activate", self.themeSwap)
self.itemBisq.connect("activate", self.themeSwap)
ent1 = Gtk.Entry()
ent2 = Gtk.Entry()
ent3 = Gtk.Entry()
grid.attach(self.menubar, 0, 0, 3, 1)
grid.attach(ent1, 0, 1, 1, 1)
grid.attach(ent2, 1, 2, 1, 1)
grid.attach(ent3, 2, 3, 1, 1)
provider = Gtk.CssProvider()
provider.load_from_file(Gio.File.new_for_path('banan.css'))
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
self.get_style_context().add_class('banan')
def themeSwap(self, event):
self.itemName = self.subMenu1.get_active()
if self.itemName == self.itemBanan:
self.fileName = 'banan.css'
self.className = 'banan'
elif self.itemName == self.itemPerl:
self.fileName = 'perl.css'
self.className = 'perl'
elif self.itemName == self.itemBisq:
self.fileName = 'bisq.css'
self.className = 'bisq'
#return(self.fileName, self.className)
print(self.fileName, self.className)
if __name__ == '__main__':
window = MyWindow()
window.connect("destroy", Gtk.main_quit)
window.show_all()
Gtk.main()