如何重置wxDatePickerCtrl的ALLOWNONE状态?

问题描述:

下面的代码使用sqlalchemy检查日期的sqlite3映射表(Ppe)。 然后它使用这些日期来填充comboBox事件上的wxForm上的字段。如何重置wxDatePickerCtrl的ALLOWNONE状态?

def refresh_ppe(self, event): 
     selected_user = str(self.m_comboBox31.GetValue()) 
     session = start_session() 
     updater = session.query(Ppe).filter(Ppe.name == selected_user).first() 
     new_date = updater.ear_defenders 
     try: 
      self.m_datePicker23.SetValue(_pydate2wxdate(new_date)) 
     except AssertionError: 
      self.m_datePicker23.SetValue(None) 

Image of control in question.

我想要做的是,当我重新填充表与护耳一个空的日期的条目(因为他们没有发出他们),它重置ALLOWNONE DatePickerCtrl的状态并清除复选框。

我已经尝试self.m_panel1681.Refresh()(父面板),并试图隐藏和显示面板和DatePickerCtrl。

任何帮助将被很好地接收。

谢谢 保罗。

wxDP_ALLOWNONE是一个标志,所以它不应该丢失,除非它被明确删除。我假设你的意思是小部件的可视状态,并且为此做了什么取决于本地控制以及它如何选择表示当前值。在wxWidgets中这样的事情的通常模式是使用给定类型的无效对象来表示空,空,默认等等。所以我会尝试使用self.m_datePicker23.SetValue(wx.DefaultDateTime)