class Application(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) self.ui_info, self.menu_info = self.get_ui() def do_activate(self): self.win = Window(self) self.win.show_all() def do_startup(self): Gtk.Application.do_startup(self) builder = Gtk.Builder() builder.add_from_string(self.ui_info) self.set_menubar(builder.get_object('menubar')) def get_ui(self): ui = '<interface><menu id="menubar">' with open('interface/menus.json', 'r') as myfile: menu = json.load(myfile, object_pairs_hook=OrderedDict) for submenu in menu: ui += '<submenu><attribute name="label">' + submenu + '</attribute><section>' for act in menu[submenu]: ui += '<item>' ui += '<attribute name="label">' + act['label'] + '</attribute>' ui += '<attribute name="action">win.' + act['name'] + '</attribute>' if 'shortcut' in act.keys(): ui += '<attribute name="accel">' + act['shortcut'] + '</attribute>' ui += '</item>' ui += '</section></submenu>' ui += '</menu></interface>' return ui, menu
class Application(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) self.ui_info, self.menu_info = self.get_ui() def do_activate(self): self.win = Window(self) self.win.show_all() def do_startup(self): Gtk.Application.do_startup(self) builder = Gtk.Builder() builder.add_from_string(self.ui_info) self.set_menubar(builder.get_object('menubar')) def get_ui(self): ui = '<interface><menu id="menubar">' with open('interface/menus.json', 'r') as myfile: menu = json.load(myfile, object_pairs_hook=OrderedDict) for submenu in menu: ui += '<submenu><attribute name="label">' + submenu + '</attribute><section>' for act in menu[submenu]: ui += '<item>' ui += '<attribute name="label">' + act['label'] + '</attribute>' ui += '<attribute name="action">win.' + act[ 'name'] + '</attribute>' if 'shortcut' in act.keys(): ui += '<attribute name="accel">' + act[ 'shortcut'] + '</attribute>' ui += '</item>' ui += '</section></submenu>' ui += '</menu></interface>' return ui, menu
import os from interface.interface import Window # можете вставить здесь какой-нибудь код для инициализации переменных приложения os.chdir("interface") main_window = Window() main_window.run()
def do_activate(self): self.win = Window(self) self.win.show_all()