J
j_mckitrick
Hi all. Here is a tiny container for one of each combo box, along
with the glade file. Just 2 widgets, so hopefully not too large. How
the heck do I get the selection from the ComboBox, as opposed to the
ComboEntryBox?
I'm pulling my hair out over this one!
jonathon
#!/usr/bin/env python
import sys
import pygtk; pygtk.require('2.0')
import gtk
import gtk.glade
class tinytest:
def __init__(self):
gladefile = 'project4.glade'
windowname = 'window1'
self.wTree = gtk.glade.XML(gladefile, windowname)
dic = { 'on_window1_destroy' : (gtk.mainquit),
'on_comboboxentry1_changed' : self.cbe,
'on_combobox1_changed' : self.cb
}
self.wTree.signal_autoconnect(dic)
def cbe(self, widget):
s = self.wTree.get_widget('comboboxentry1').get_children()[0].get_text()
print 'cbe changed %s' % s
def cb(self, widget):
# s = self.wTree.get_widget('combobox1').entry.get_text()
# print 'cb changed %s' % s
s = self.wTree.get_widget('combobox1').get_children()[0].list
s = self.wTree.get_widget('combobox1').list.get()
print 'cb changed %s' % s
s = self.wTree.get_widget('combobox1').active
print 'cb changed %d' % s
tinytest()
gtk.main()
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM
"http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="window1">
<property name="visible">True</property>
<property name="title" translatable="yes">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<signal name="destroy" handler="on_window1_destroy"
last_modification_time="Fri, 21 May 2004 1\1:31:03 GMT"/>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkComboBoxEntry" id="comboboxentry1">
<property name="visible">True</property>
<property name="items" translatable="yes">Entry 1
Entry 2
Entry 3</property>
<signal name="changed" handler="on_comboboxentry1_changed"
last_modification_time="Fri\, 21 May 2004 10:28:23 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="combobox1">
<property name="visible">True</property>
<property name="items" translatable="yes">Item 1
Item 2
Item 3</property>
<signal name="changed" handler="on_combobox1_changed"
last_modification_time="Fri, 21 \May 2004 10:28:35 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>
with the glade file. Just 2 widgets, so hopefully not too large. How
the heck do I get the selection from the ComboBox, as opposed to the
ComboEntryBox?
I'm pulling my hair out over this one!
jonathon
#!/usr/bin/env python
import sys
import pygtk; pygtk.require('2.0')
import gtk
import gtk.glade
class tinytest:
def __init__(self):
gladefile = 'project4.glade'
windowname = 'window1'
self.wTree = gtk.glade.XML(gladefile, windowname)
dic = { 'on_window1_destroy' : (gtk.mainquit),
'on_comboboxentry1_changed' : self.cbe,
'on_combobox1_changed' : self.cb
}
self.wTree.signal_autoconnect(dic)
def cbe(self, widget):
s = self.wTree.get_widget('comboboxentry1').get_children()[0].get_text()
print 'cbe changed %s' % s
def cb(self, widget):
# s = self.wTree.get_widget('combobox1').entry.get_text()
# print 'cb changed %s' % s
s = self.wTree.get_widget('combobox1').get_children()[0].list
s = self.wTree.get_widget('combobox1').list.get()
print 'cb changed %s' % s
s = self.wTree.get_widget('combobox1').active
print 'cb changed %d' % s
tinytest()
gtk.main()
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM
"http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="window1">
<property name="visible">True</property>
<property name="title" translatable="yes">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<signal name="destroy" handler="on_window1_destroy"
last_modification_time="Fri, 21 May 2004 1\1:31:03 GMT"/>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkComboBoxEntry" id="comboboxentry1">
<property name="visible">True</property>
<property name="items" translatable="yes">Entry 1
Entry 2
Entry 3</property>
<signal name="changed" handler="on_comboboxentry1_changed"
last_modification_time="Fri\, 21 May 2004 10:28:23 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="combobox1">
<property name="visible">True</property>
<property name="items" translatable="yes">Item 1
Item 2
Item 3</property>
<signal name="changed" handler="on_combobox1_changed"
last_modification_time="Fri, 21 \May 2004 10:28:35 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>