2011-07-14 6 views
1

私はWindowsとLinuxで標準ダイアログにCANCELとOKボタンの順番が異なることに気付きました。 Linuxの場合、「[CANCEL] [OK]」、Windowsでは「[OK] [CANCEL]」と表示されます。wxgladeで作成された "カスタム"ダイアログでOK/CANCELの注文

私は標準のダイアログに問題はありませんが、私の "カスタムダイアログ"を調整して、同じ注文に合わせる必要があります。

私の疑問:

1.- wx.StdDialogButtonSizerというクラスを存在するようだが、私はそれが使用されるべきかどうかはわかりません。誰か作業中の単純/実例を投稿できますか?

そして「メイン疑問」:

2.-私は、ダイアログのコードを「構築」するwxgladeを使用するので、私はStdDialogBu​​ttonSizerを使用することができますかわかりません。指定された順序でダイアログを定義する方法はありますか?実行時に、ボタンが正しい順序に従っていて、それらの2つのウィジェットを "交換"していない場合はチェックしますか?

おかげ

答えて

5

StdDialogBu​​ttonSizerは間違いなくカスタムダイアログのために行くための方法です。ここでは簡単な例だ:

import wx 

######################################################################## 
class SampleDialog(wx.Dialog): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Dialog.__init__(self, parent, title="Tutorial") 

     btnOk = wx.Button(self, wx.ID_OK) 
     btnCancel = wx.Button(self, wx.ID_CANCEL) 

     btnSizer = wx.StdDialogButtonSizer() 
     btnSizer.AddButton(btnOk) 
     btnSizer.AddButton(btnCancel) 
     btnSizer.Realize() 
     self.SetSizer(btnSizer) 

#---------------------------------------------------------------------- 
if __name__ == '__main__': 
    app = wx.App(False) 
    dlg = SampleDialog(None) 
    dlg.ShowModal() 

も参照してくださいWxPython: Cross-Platform Way to Conform Ok/Cancel Button Orderまたはhttp://wxpython-users.1045709.n5.nabble.com/wx-StdDialogButtonSizer-and-wx-ID-SAVE-td2360032.html

空き地やないがこれを行う方法があるかどうかはわかりません。

+0

答えと例をありがとう。私の問題は、wxgladeでguiを作成し、StdDialogBu​​ttonSizerの追加をサポートしていないようです(少なくとも私はそれを行う方法はわかりません)。私は "カスタムウィジェットを追加"オプションをチェックします... – sromero

+0

gladeのようなwxpython GUIビルダーのほとんどは残念ながら、利用可能なコントロールのサブセットをサポートしていません。私は必要なものに似たコードを生成して手で編集する方が簡単だと分かった。 – Velociraptors

+0

私はVelociraptorsに同意します。それは間違いなく一つの方法です。 –