ボタンを並べる順番を迷ったときに使うSizer

Linuxでの表示
Windowsでの表示

ダイアログにボタンを配置する場合、「Yes」「No」であったり、「Cancel」「OK」であったり、複数のボタンを並べなければいけなくなると、どう配置したらいいか迷ってしまう。その上、ダイアログが増えてくると、あっちのダイアログとこっちのダイアログで同じボタンを並べたが並ぶ順番が異なったりすると目も当てられない。

このようなことで悩まないためには、ボタンの配置にStdDialogButtonSizerを使うことする。

これを使えば、複数のボタンの順序、間隔、もちろん見た目も、を同じプラットフォーム上で統一的に表示できるようになる。プラットフォームごとに基本的なインターフェースのガイドラインがあり、それに従うためにプラットフォームごとにはボタンの順番が異なったりするが(上図参照)。

使用例(コードの一部):

btnsizer = wx.StdDialogButtonSizer()
        
btn = wx.Button(self, wx.ID_OK)
btn.SetDefault()
btnsizer.AddButton(btn)

btn = wx.Button(self, wx.ID_CANCEL)
btnsizer.AddButton(btn)
btnsizer.Realize()

sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)

自分でラベルを定義して作ったボタンは、残念ながらこのサイザーには並べられない。「wx.ID_*」で指定できるボタンならOK。