2009-12-20 6 views
4

Je suis en train d'effectuer une pré-remplir un wxPython DatePicker avec une valeur en utilisant le code suivant:wxPython - DatePickerCtrl semble ignorer SetValue()

month, day, year = runData[2][0:8].split('/') 
displayDate = wx.DateTimeFromDMY(int(day), int(month) - 1, int(year)) 
self.datePicker.SetValue(displayDate) 

Voici les valeurs imprimées:

  • rundata [2] = 12/16/09 00:00
  • mois, jour, année = 12 16 09
  • displayDate = 12/16/09 00:00:00

Mais, datePicker affiche toujours la date du jour à la place.

Des idées?

J'utilise Python 2.6.4 avec wxPython 2.8.10.1 sur Windows 7.

Merci.


Mise à jour 20/12/09 16:30:

Lorsque je tente de traiter les informations du DatePickerCtrl le problème, je reçois l'erreur suivante:

Traceback (most recent call last): 
    File "test.py", line 1120, in onOk 
    dateLong = self.datePicker.GetValue() 
    File "c:\python26\lib\site-packages\wx-2.8-msw-unicode\wx\_controls.py", line 
6465, in GetValue 
    return _controls_.DatePickerCtrlBase_GetValue(*args, **kwargs) 
wx._core.PyAssertionError: C++ assertion "m_date.IsValid() == dt.IsValid() && (! 
dt.IsValid() || dt == m_date)" failed at ..\..\src\msw\datectrl.cpp(278) in wxDa 
tePickerCtrl::GetValue(): bug in wxDatePickerCtrl: m_date not in sync 

Am I Il manque quelque chose?

+0

Plate-forme? Les fenêtres? Linux? Mac? – voyager

+0

La plate-forme est Windows 7 –

Répondre

2

Avez-vous essayé de faire l'année 2009 au lieu de 9?

+0

Brilliant, merci FogleBird. Cela fonctionne maintenant bien. –

+0

L'arrière-plan semble être que les dates antérieures à 1700 ne sont pas acceptées par wx.DateTime. Si vous passez le 01-01-1500, le contrôle s'affichera à la place aujourd'hui. – virtualnobi