Soy nuevo en Python y WX. Creé un diálogo de prueba simple que se muestra a continuación que solicita al usuario un cuadro combinado. Me gustaría capturar el valor de la combox en mi programa principal. ¿Cómo lo llamo desde mi programa principal?Python WX - Devolver entrada de usuario desde wx Dialog
Esta es la forma en que estaba proponiéndose a llamar así muestra el diálogo, pero que actualmente no captura el valor del cuadro combinado:
import highlight
highlight.create(self).Show(True)
a = highlight.OnComboBox1Combobox(self)
print a
El nombre del archivo de diálogo es "punto culminante". A continuación se muestra el código:
#Boa:Dialog:Dialog2
import wx
def create(parent):
return Dialog2(parent)
[wxID_DIALOG2, wxID_DIALOG2COMBOBOX1, wxID_DIALOG2STATICTEXT1,
] = [wx.NewId() for _init_ctrls in range(3)]
class Dialog2(wx.Dialog):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Dialog.__init__(self, id=wxID_DIALOG2, name='', parent=prnt,
pos=wx.Point(264, 140), size=wx.Size(400, 485),
style=wx.DEFAULT_DIALOG_STYLE, title='Dialog2')
self.SetClientSize(wx.Size(384, 447))
self.comboBox1 = wx.ComboBox(choices=['test1', 'test2'],
id=wxID_DIALOG2COMBOBOX1, name='comboBox1', parent=self,
pos=wx.Point(120, 16), size=wx.Size(130, 21), style=0,
value=u'wining\n')
self.comboBox1.SetToolTipString(u'comboBox1')
self.comboBox1.SetLabel(u'wining\n')
self.comboBox1.Bind(wx.EVT_COMBOBOX, self.OnComboBox1Combobox,
id=wxID_DIALOG2COMBOBOX1)
self.staticText1 = wx.StaticText(id=wxID_DIALOG2STATICTEXT1,
label=u'test', name='staticText1', parent=self, pos=wx.Point(88,
16), size=wx.Size(19, 13), style=0)
def __init__(self, parent):
self._init_ctrls(parent)
##print get_selection
##print get_selection1
def OnComboBox1Combobox(self, event):
get_selection = self.comboBox1.GetValue()
return get_selection
Mike, Gracias por la respuesta. Cuando uso res = myDlg.ShowModal() no funciona, pero si lo cambio a res <> myDlg.ShowModal() funciona. ¿Sabes por qué? Gracias. – user1314011
Debería funcionar. Necesitaría un ejemplo ejecutable y un rastreo para saber qué está pasando. –
sería bueno agregar qué código debe estar en el diálogo personalizado así como en la aplicación principal. La pregunta de OP no está cubierta por el ejemplo de diálogo personalizado zetcode – Anake