0

我正在尝试获取一个 wxPythonTimeCtrl小部件,通过单击按钮将其值 12 小时(上午/下午)格式切换为 24 小时格式。

现在我知道TimeCtrl小部件 12/24 小时格式是在初始化时通过设置属性fmt24hr = False/True设置的, 具体取决于您是否要显示 24 小时格式。

这是 TimeCtrl 的 API::

from wx.lib.masked import TimeCtrl

TimeCtrl(
     parent, id = -1,
     value = '00:00:00',
     pos = wx.DefaultPosition,
     size = wx.DefaultSize,
     style = wxTE_PROCESS_TAB,
     validator = wx.DefaultValidator,
     name = "time",
     format = 'HHMMSS',
     fmt24hr = False,
     displaySeconds = True,
     spinButton = None,
     min = None,
     max = None,
     limited = None,
     oob_color = "Yellow"
    )

现在我想在单击按钮时将fmt24hr从 True 切换为 False 但我找不到方法!据我在文档中看到的,它没有设置器。

任何帮助将不胜感激。

4

1 回答 1

1

我猜这是创建小部件后无法更改的属性。你有两个选择:

  1. 创建两个控件并隐藏一个,当您切换时隐藏第一个并显示第二个
  2. 创建第一个控件,然后在“切换”它时将其销毁,并在其位置创建另一个版本。

无论哪种方式,您几乎肯定会希望使用 Sizer 方法使其在正确的位置出现和消失。如果您要销毁它,那么您将需要 Sizer.Remove 和 Sizer.Insert。如果您只是显示和隐藏,那么您可以使用 Sizer 的 Show 和 Hide 方法。您可能还想查看面板的 Freeze 和 Thaw 方法以减少闪烁量。

于 2013-01-22T14:45:18.113 回答