J'ai un dialogue avec un contrôle du sélecteur de date. Si vous tapez enter dans le sélecteur de date, la boîte de dialogue se ferme (comme prévu). Cependant, le sélecteur de date ne récupère pas la valeur entrée par l'utilisateur sur wxGTK. Exécutez l'exemple joint, cliquez sur le bouton, entrez une nouvelle date dans le sélecteur de date, utilisez le clavier et appuyez sur Entrée. L'instruction d'impression affiche la valeur précédente du sélecteur de date, pas la valeur que vous venez d'entrer.wx.DatePickerCtrl dans la boîte de dialogue ignore la valeur entrée après avoir renvoyé le retour sur wxGTK
Sur wxMSW, cela fonctionne comme prévu. En utilisant wxPython 2.8.10.1 dans les deux cas.
Des idées? Solution de contournement?
Merci, Frank
import wx
class Dialog(wx.Dialog):
def __init__(self, *args, **kwargs):
super(Dialog, self).__init__(*args, **kwargs)
self.datepicker = wx.DatePickerCtrl(self)
self.button = wx.Button(self, label='OK')
self.button.SetDefault()
self.button.Bind(wx.EVT_BUTTON, self.onButton)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.datepicker)
sizer.Add(self.button)
self.SetSizerAndFit(sizer)
def onButton(self, event):
print self.datepicker.GetValue()
self.Close()
class Frame(wx.Frame):
def __init__(self, *args, **kwargs):
super(Frame, self).__init__(*args, **kwargs)
self.button = wx.Button(self, label='Press me to open dialog')
self.button.Bind(wx.EVT_BUTTON, self.onButton)
def onButton(self, event):
dialog = Dialog(self, size=(200,30))
dialog.Show()
app = wx.App()
frame = Frame(None, size=(200,50))
frame.Show()
app.MainLoop()
Cela semble plus simple que mon travail, merci! –