Re: [Glade-devel] how to add window as a page to a notebook
Neil Dugan <[email protected]>
| Newsgroups | gmane.comp.gnome.gtk+.python,gmane.comp.gnome.glade.devel,gmane.comp.gnome.glade.user |
|---|---|
| Message-ID | <[email protected]> |
Tristan Van Berkom wrote: > On Sat, Jan 10, 2009 at 1:54 AM, anusha k <[email protected]> wrote: >> hi, >> >> I am using glade and pygtk to develop an accounting software.In that we have >> two glade files .first glade file contain the main window and the note book >> and the second glade contains the another window .I want to add the second >> glade-window as a page to first glade-window.how to do this >> I have the code as below.but it is giving the warning and the window is not >> shown up .warnings are : >> How to solve the warnings.Is there any other way to solve this >> Warnings:**************************************************************************** >> >> self.wTree = gtk.glade.XML(self.gladefile) >> main.py:47: GtkWarning: gtk_notebook_set_tab_label: assertion `GTK_IS_WIDGET >> (child)' failed >> self.wTree = gtk.glade.XML(self.gladefile) >> main.py:20: GtkWarning: Can't set a parent on a toplevel widget >> >> >> self.page=self.notebook.insert_page(self.wTreenewOrg.get_widget("window_new_org") >> , None, 0) >> main.py:20: GtkWarning: gtk_widget_set_child_visible: assertion >> `!GTK_WIDGET_TOPLEVEL (widget)' failed > > You cannot add a GtkWindow to another GtkContainer, a GtkWindow is a > toplevel-only > widget and is not meant to be maintained. > > You can either: > - Manually unparent your window's child and add that child to the > notebook (the traditional oldschool way) > - Use the "root" argument to glade_xml_new or some equivalent > gtkbuilder api (I think that works > for building of sub-portions of the glade file) > - Use development or trunk versions of Glade allowing you to use > non-GtkWindow toplevel project > widgets - and use GtkBuilder that will allow you toplevelless > glade files without errors/warnings. > > Cheers, > -Tristan One thing I have done that is similar is, to not attach the window, but attach the most top level widget. When designing the window, you need to put all the widgets in a HBox,VBox or Table. Attach this not the window itself. Regards Neil. > >> self.page=self.notebook.insert_page(self.wTreenewOrg.get_widget("window_new_org") >> , None, 0) >> *************************************************************************** >> Code: >> >> import pygtk >> pygtk.require('2.0') >> import gtk >> import gtk.glade >> import new_org >> class mainmenu: >> def show_newOrganisation(self,widget): >> new_org.org() >> self.gladefile_newOrg = "new_org.glade" >> self.wTreenewOrg = gtk.glade.XML(self.gladefile_newOrg) >> >> self.page=self.notebook.insert_page(self.wTreenewOrg.get_widget("window_new_org") >> , None, 0) >> self.notebook.set_current_page(self.page) >> >> def dialogQuit(self,widget): >> self.dialog_quit = self.wTree.get_widget("dialog_quit") >> self.dialog_quit.show() >> self.response = self.dialog_quit.run() >> if self.response == 'gtk.RESPONSE_QUIT': >> gtk.main_quit() >> self.window.destroy() >> self.dialog_quit.destroy() >> >> >> def on_button_quit_clicked(*args): >> gtk.main_quit() >> >> def on_button_cancel_clicked(*args): >> self.dialog_quit.destroy() >> >> #To quit the main window >> def on_Mainwindow_destroy(self): >> gtk.main_quit() >> >> >> def __init__(self): >> #set the glade file >> self.gladefile = "gnukhata.glade" >> self.wTree = gtk.glade.XML(self.gladefile) >> >> #get the Main Window and connect the Destroy event >> self.window = self.wTree.get_widget("MainWindow") >> self.window.show() >> self.window.connect('destroy',gtk.main_quit) >> self.notebook = self.wTree.get_widget("notebook_main") >> self.notebook.show() >> >> self.menuitem_quit = self.wTree.get_widget("menuitem_quit") >> self.menuitem_quit.connect('activate',self.dialogQuit) >> >> self.menuitem_newOrg = >> self.wTree.get_widget("menuitem_new_organisation") >> self.menuitem_newOrg.connect('activate',self.show_newOrganisation) >> if __name__ == "__main__": >> mm=mainmenu() >> gtk.main() >> >> Thanks in advance >> >> Njoy the share of Freedom, >> Anusha >> >> _______________________________________________ >> Glade-devel maillist - [email protected] >> http://lists.ximian.com/mailman/listinfo/glade-devel >> >> > _______________________________________________ > pygtk mailing list [email protected] > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ > _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/