0

TimeCtrlボタンをクリックするだけで、値の 12 時間 (AM/PM) 形式を 24 時間形式に切り替えるwxPython ウィジェットを取得しようとしています。

これで、 24 時間形式を表示するかどうかに応じて、属性fmt24hr = False/TrueTimeCtrlを設定することにより、ウィジェットの 12/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

これは、ウィジェットの作成後に変更できない属性だと思います。2つのオプションがあります。

  1. 両方のコントロールを作成して一方を非表示にし、切り替えると最初のコントロールを非表示にして2番目のコントロールを表示します
  2. 最初のコントロールを作成し、それを「トグル」して破棄し、代わりに他のバージョンを作成します。

いずれにせよ、Sizerメソッドを使用して、適切な場所に表示および非表示にすることをお勧めします。破棄する場合は、Sizer.RemoveとSizer.Insertが必要になります。表示と非表示だけを行う場合は、SizerのShowメソッドとHideメソッドを使用できます。ちらつきの量を減らすために、パネルの凍結と解凍の方法を調べることもできます。

于 2013-01-22T14:45:18.113 に答える