0

下面的代码使用 sqlalchemy 检查 sqlite3 映射表(Ppe)的日期。然后它使用这些日期来填充组合框事件的 wxForm 上的字段。

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)

有问题的控制图像。

我正在尝试做的是,当我使用 Ear Defenders 的 Null 日期条目重新填充表格时(因为它们尚未被发布),它会重置 DatePickerCtrl 的 ALLOWNONE 状态并清除复选框。

我尝试了 self.m_panel1681.Refresh() (父面板),还尝试隐藏和显示面板和 DatePickerCtrl。

任何帮助都会得到极大的欢迎。

谢谢保罗。

4

1 回答 1

1

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

于 2016-07-11T23:29:46.520 回答