WxPython:[OK]/[キャンセル]ボタンの順序に準拠するクロスプラットフォームの方法
-
03-07-2019 - |
質問
私は wxPython を学んでいるので、ほとんどのライブラリとクラスは初めてです。
設定ダイアログ クラスを作成していますが、OK/キャンセル (または保存/閉じる) ボタンがプラットフォームに対して正しい順序であることを確認する最良の方法がわかりません。このプログラムは GNOME と Windows の両方で実行することを目的としているため、ボタンが各プラットフォームで正しい順序になっていることを確認したいと思います。
wxPython は、 if platform.system() == 'Linux'
一種のハック?
解決
ダイアログの外観は、ストック ダイアログ (wx.FileDialog など) を使用する場合にのみ変更できます。独自に作成した場合、レイアウトはどのプラットフォームでも同じままです。
wx.Dialog には、標準ボタンを備えた wx.StdDialogButtonSizer を作成する CreateStdDialogButtonSizer メソッドがあり、異なるプラットフォームではレイアウトに違いが見られる可能性がありますが、それを使用する必要はありません。
他のヒント
StdDialogButtonSizer を使用できます
http://www.wxpython.org/docs/api/wx.StdDialogButtonSizer-class.html
ボタンに標準 ID がある限り、ボタンは正しい順序で配置されます。
ただし、たとえば Mac では、環境設定ダイアログには [OK] ボタンや [キャンセル] ボタンがありません。設定が入力されたとき (または少なくともダイアログを閉じるとき) に、設定が自動的に適用されます。したがって、その場合でもプラットフォームのスニッフィングを行う必要があります。
wx(または他のx-platformツールキット)を使用する場合、それが正しいことをすることを信頼する方が良いでしょう、mon!-)
プラットフォームに応じて適切な処理を行うGenericMessageDialogウィジェットがあります(ただし、使用したことがないため、実行するかどうかはわかりません)。 wxPythonデモをご覧ください。
SizedControlsアドオンライブラリ(wxPythonの一部)も使用できます。 SizedDialogクラスは、各プラットフォームのヒューマンインターフェイスガイドラインに準拠するダイアログを作成するのに役立ちます。 wxPythonデモをご覧ください。