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/

Reply via email to