1

How can I store multiple different windows/dialogs in a single GtkBuilder file and then load these windows in different classes (each class corresponding to a different window)? For instance, currently I'm doing things like:

def __init__(self): self.builder = gtk.Builder() self.builder.add_from_file('gtkbuilder.xml') self.welcome_dialog = self.builder.get_object('welcome_dialog') self.builder.connect_signals(self) self.welcome_dialog.show() 

This does produce a functioniong piece of software, but it spits out all kinds of warnings like:

welcome_dialog.py:38: RuntimeWarning: missing handler 'on_contract_window_response' self.builder.connect_signals(self) 

for each of the signal handlers I have defined in Glade for all the other windows. I guess all I want to do is connect the signals for this single window/dialog and ignore everything else, but I'm not sure how to do that. Or maybe I am doing something horribly wrong and I should be splitting up each window into a different GtkBuilder file? Or connecting the signals for every possible window at the same (initial) time?

1 Answer 1

7

Using gtk.Builder.add_from_file adds the entire hierarchy from your file to the Builder object, which is why you're getting the signal connection warnings; the builder.connect_signals() call tries to connect up everything.

Instead, use gtk.Builder.add_objects_from_file to choose the individual top-level window or widget that you want to handle in your current class.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.