class XML(object): def __init__(self, fname, root=None, domain="", typedict={}): self.builder = Builder() if domain: self.builder.set_translation_domain(domain) conv = GtkBuilderConverter(root=root, skip_windows=False) conv.parse_file(fname) cwd = os.getcwd() os.chdir(os.path.dirname(fname)) xml = conv.to_xml() self.builder.add_from_string(xml, len(xml)) os.chdir(cwd) def signal_connect(self, handler_name, func): self.builder.connect(handler_name, func) def signal_autoconnect(self, dict): self.builder.connect_signals(dict) def get_widget(self, name): obj = self.builder.get_object(name) if isinstance(obj, Action): obj = obj.get_proxies()[0] return obj