Re: how to add window as a page to a notebook

Tristan Van Berkom <[email protected]>
Newsgroups gmane.comp.gnome.glade.devel,gmane.comp.gnome.glade.user,gmane.comp.gnome.gtk+.python
Message-ID <[email protected]>
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

>
> 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
>
>
_______________________________________________
Glade-devel maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/glade-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.