Hi, if I would be in you I would not continue to create and destroy the widgets on the notebook pages. For simplicity (and processing speed) I would draw in glade all possible widgets and then from the code just show/hide what you need according to the selected row, possibly grouping the widgets that are together to be shown in containers so that you just hide/show the father of all of them. HTH, cheers, Giuseppe.
On Thu, Aug 18, 2011 at 17:53, Sabrina Friedman <utebachme...@gmail.com>wrote: > Hello all, > > I am working on an application (ReliaFree) using pyGTK2 to provide the > GUI. All of the data associated with this application is stored in > MySQL databases. When the database is opened, the data is loaded in a > treeview. When the user selects an item (row) in the treeview, various > combobox and entry widgets are populated. These widgets are grouped and > organized on various notebook widget pages. Since the information can > change depending on whether the selected item is a component or an > assembly, the combobox and entry widgets are created "on the fly" each > time a new item is selected in the treeview. > > When I first load the database into the treeview, the widgets on the > first two pages are created, shown, and populated. However, on the > third page, the widgets are not shown. No errors are thrown, so I am > assuming they are being created and populated. > > 1. If I cycle through all three pages in the notebook before > selecting a new item (row) in the treeview, all of the widgets on all > three pages will be shown thereafter. > > 2. If I select a new item (row) in the treeview without first > cycling through the pages, only the widgets on the first page are > shown. Cycling through the pages causes the widgets to be shown > thereafter. > > I've been trying to figure out what I'm doing wrong for quite awhile > with no success. Hopefully someone can point me in the right > direction. Thanks in advance for your help. > > Here is part of the function that loads the third page of the notebook > with the treeview row data: > > def load_calculation_results_tab(self, _index_): > > # Clear any existing widgets from previously selected objects. > if(self.fraRelResults.get_child() is not None): > self.fraRelResults.get_child().destroy() > > <SNIP> > > # Load the calculation results with Hardware or FRACA Tree > information. > elif(_index_ == 2 or _index_ == 3): > > if not self.app.HARDWARE._part: > (quad1, > quad2, > quad4) = > self.app.ASSEMBLY.load_calc_results_tab(x_size=400, > > y_size=300) > > <SNIP> > > self.fraRelResults.add(quad1) > self.fraMaintainResults.add(quad2) > self.fraMiscResults.add(quad4) > > # Show the calculation results page. > page = self.notebook.get_nth_page(3) > page.show_all() > > return False > > Here is part of the function called by the preceding function: > > def load_calc_results_tab(self, x_size, y_size): > > layout = gtk.Layout() > layout.set_size(x_size, y_size + 300) > quadrant1 = gtk.Alignment(xalign = 0.50, > yalign = 0.50, > xscale = 1.0, > yscale = 1.0) > scrollwindow = gtk.ScrolledWindow() > scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, > gtk.POLICY_AUTOMATIC) > quadrant1.add(scrollwindow) > scrollwindow.add(layout) > > for i in range(len(self._cr_tab_labels[0])): > label = _widg.make_label(self._cr_tab_labels[0][i], > 150, 25) > layout.put(label, 5, (30 * i + 5)) > > self.txtActiveHt = _widg.make_entry(editable=False, bold=True) > layout.put(self.txtActiveHt, 155, 5) > self.txtDormantHt = _widg.make_entry(editable=False, bold=True) > layout.put(self.txtDormantHt, 155, 35) > self.txtSoftwareHt = _widg.make_entry(editable=False, bold=True) > layout.put(self.txtSoftwareHt, 155, 65) > > <SNIP> > > quadrant1.show_all() > > <SNIP> > > self.txtActiveHt.set_text(str(self._attribute[28])) > self.txtDormantHt.set_text(str(self._attribute[29])) > self.txtSoftwareHt.set_text(str(self._attribute[32])) > > <SNIP> > > return(quadrant1, quadrant2, quadrant4) > > > Sabrina Friedman > Billige Flüge Marketing GmbH > Emanuelstr. 3, > 10317 Berlin > Deutschland > Telefon: +49 (33) 5310967 > Email: utebachme...@gmail.com > Site: http://flug.airego.de - Billige Flüge vergleichen > _______________________________________________ > pygtk mailing list pygtk@daa.com.au > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/
_______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/