wxPythonのノート・:wxPythonのインタフェースのレイアウト()

 

5つのレイアウトのwxPython:

  • グリッド:非常に基本的なグリッドレイアウト。あなたは窓部材を配置したい場合は、同じサイズで、きちんと定期的なグリッドにそれが使用されています。
  • フレックスグリッド:グリッドサイザーはわずかいくつかの変更を行ったため窓部材は、異なるサイズを有するとき、より良い結果を持つことができます。
  • シリーズサイザーグリッド最も柔軟メンバー:グリッドバッグ。ウィンドウは、より自由に配置することができるようにグリッド部材。
  • ボックス:窓部材の水平または垂直線に配置。サイズが変更された場合、制御ウィジェットの動作に柔軟です。一般的に、ネストされたパターンを使用。これは、レイアウトのほぼすべてのタイプのために使用することができます。
  • 静的ボックス:標準ボックスサイザー。タイトルとリンク付き。

 

ここでは、グリッド、ボックス、静的ボックス3つのレイアウトモードを紹介します。

グリッドサイザー

グリッド:非常に基本的なグリッドレイアウト。あなたは窓部材を配置したい場合は、同じサイズで、きちんと定期的なグリッドにそれが使用されています。

グリッドサイザーはクラスwx.GridSizerのインスタンスです。

コンストラクタは、明示的に4つのプロパティを提供します:

wx.GridSizer(行、列、VGAP、hgap)

行:どのように多くの行を作成

列は:どのように多くの列を作成します

VGAP 2つの隣接する列の画素間の間隔の量

hgap:隣接する2行の画素間の間隔量

各スペースのグリッドサイザーの大きさは、さえ各ウィジェットの異なるサイズの場合、同じ大きさのすべての子ウィンドウの場合に最適なグリッドサイザー同じです。

wx.GridSizerクラスの一般的な方法:

  • ()を追加し、次の利用可能な制御スロットグリッドを追加します
  • AddMany()リストコントロール内の各項目を追加します
  • SetRows()サイザーの行数
  • GETROWS()サイザーの行数を取得します
  • SetCols()列数サイザー提供
  • ()GetColsのサイズは、列番号を取得します
  • SetVgap()の垂直方向の間隔(画素)単位との間に配置されました
  • GetVgap()戻り値とVGAP細胞
  • SetHgap()ユニットとの間に配置された水平方向の間隔(ピクセル)
  • ()GetHgap hgapリターンとの間の値、指定したセル

輸入WXの
 クラス例(wx.Frame):
     デフ __init__ (自己、親、タイトル):
        スーパー(例、自己)。__init__(親、タイトル=タイトル、サイズ=(300、200 ))
        self.InitUI()
        self.Centre()
        self.Show()

    DEF InitUI(自己):
        P = wx.Panel(自己)
        GS = wx.GridSizer (4、4、5、5 用の I における範囲(1、17 ):
            BTN = " BTN " + STR(I)
            gs.Add(wx.Button(P、ラベル= BTN)、0、wx.EXPAND)
            p.SetSizer(GS) フレームGridSizerに関連付け

アプリ = wx.App()
例(なし、タイトル = ' - www.yiibai.comグリッドデモ' 
app.MainLoop ()

 

 

ボックスサイザー

 ボックス:ボックスサイザーラインに下へ、右または上に左から窓部材が配置された水平方向の行または垂直列です。

クラスのwx.BoxSizerボックスサイザーのインスタンスは、サブクラスが尊敬wx.Sizerとwx.BoxSizer wx.Sizer、wx.BoxSizerほとんどない新しい方法です。

wx.BoxSizerコンストラクタの引数:

wx.BoxSizer(オリエント)

パラメータ代表方向配向サイザー、その値はwx.VERTICAL又はwx.HORIZONTALであってもよいです。

垂直方向と水平方向のボックスを作成します。

BOX1 = wx.BoxSizer(wxHORIZONTAL)
Box2の = wx.BoxSizer(wxVERTICAL)

ボックスサイザーはwxPythonのが最も簡単で柔軟性のサイザーを提供サイザーです。

一般的な方法wx.BoxSizerクラス:

  • SetOrientation()で提供またはwxHORIZONTAL wxVERTICAL配向
  • AddSpacer()非伸縮スペースを追加します
  • AddStretchSpacer()は、伸縮スペースを追加し、制御ウィンドウのサイズを調整するために大きさに比例する影響します
  • クリア()サイザーコントロールから子を削除します
  • デタッチ()サイザーから削除コントロールが破壊しません
  • インサート()指定された位置にある子コントロールを挿入します
  • 削除()サイザーと破壊から子コントロールを削除します。

インポートWXの

クラスmywin(wx.Frame):
     DEF  __init__ (自己、親、タイトル):
        スーパー(mywin、セルフ)__init__(親、タイトル=タイトル、サイズ=(600、400 ))
        パネル1 = wx.Panel(セルフ)
         垂直ボックス 
        のVBox = wx.BoxSizer(wx.VERTICAL)
        のhbox 
        nmbox = wx.BoxSizer(wx.HORIZONTAL)
        2つの静的テキストを作成 
        のFn = wx.StaticText(パネル1、-1、ラベル= 映画名:" 
        LN = wx.StaticText(パネル1、-1、ラベル= " セレクト源:"つの入力ボックスを作成 
        self.nm1 = wx.TextCtrl(パネル1、-1、サイズ=(200,20)、スタイル= wx.ALIGN_LEFT)
        は、上記3つの水平ボックス追加 
        nmbox.Add(FN、0を、wx.ALL | wx.EXPAND、5 
        nmbox.Add(self.nm1、0、wx.ALL | wx.EXPAND、5 
        nmbox.Add(LN、0、wx.ALL | wx.EXPAND、5 ドロップダウンボックスの作成 
        self.languages = [ 映画の楽園80S映画のネットワーク1905年映画のネットワークBTの天国龍族を"香港映画' ' 誰も字幕グループ" ] 
        self.choice = self.languages [0] 
        self.combo = wx.ComboBox(パネル1、選択肢= self.languages、値= self.languages [0])
        水平ボックスドロップダウンボックスを追加します 
        nmbox.Add(| wx.ALIGN_CENTER_HORIZONTAL | self.combo、1、wx.EXPAND wx.ALL、5 


        #は、ボタン作成 
        self.find_Button = wx.Button(パネル1、ラベル= " クエリを" 
        self.Bind( wx.EVT_BUTTON、self.Onclick、self.find_Button) 
        水平ボックスのクエリボタンを追加 
        nmbox.AddSpacer(20 
        nmbox.Add(self.find_Button、0、wx.ALIGN_CENTER_HORIZONTALを)
        垂直ボックスのhboxに追加 
        vbox.Add(nmbox、0、wx.ALL | wx.CENTER ,. 5 

        MULTILABEL = wx.StaticText(パネル1、-1、" 結果:" 
        vbox.Add(MULTILABEL、0 、wx.ALL | wx.EXPAND、5 

        #をテキストフィールドの作成 
        self.multiText = wx.TextCtrl(パネル1、-1、サイズ=(200、200)、スタイル= wx.TE_MULTILINE)  、テキストコントロールの作成 
        self.multiTextを.SetInsertionPoint(0)  は、挿入ポイントを設定します
          垂直に追加テキストボックスフィールドを 
        |(wx.EXPAND ,. 5 self.multiText ,. 1、wx.ALL vbox.Add 
 
        panel1.SetSizer(VBoxの)
        self.Showは()

    DEF :にOnclick(自己、イベント)
        プリント(self.choice)
       self.multiText.write(self.choice + " \ n個" 
アプリ = wx.App()
Mywin(なし、' 快搜' 
app.MainLoop()

addメソッドのボックスそのハイライト:

次の行/列に取り付けサイザー(wxSizerから継承)add()メソッド。
Box.Add(サイズ、比率、旗、ボーダー) 
サイズ:ウィンドウを追加する必要があります。
ボーダー:パラメータは整数で、ピクセル間隔は、制御空間との間に設けられています。
割合:その大きさを変更するために、容器の大きさを制御するための制御パラメータに応じました。

フラグ:パラメータの組み合わせは、対照サイザーの外観を決定します。
合わせマーク
wx.ALIGN_TOP 
wx.ALIGN_BOTTO 
Mwx.ALIGN_LEFT 
wx.ALIGN_RIGHT 
wx.ALIGN_CENTER_VERTICAL 
wx.ALIGN_CENTER_HORIZONTAL 

境界マーカー
wx.TOP 
wx.BOTTOM 
wx.LEFT 
wx.RIGHT 
wx.ALLの

行動フラグ          
wx.EXPANDプロジェクトが利用可能にいっぱいに拡大しますその空間(wx.GROW同じ)
類似でEXPANDが、アスペクト比項目が維持wx.SHAPED 
wx.FIXED_MINSIZEは、プロジェクトが初期サイズより小さい最小値より小さくなることはできません
許可測定wx.RESERVE_SPACE_EVEN_IF_ HIDDENそれが隠されているデバイス(サイザー)回復プロジェクトスペース、
フラグパラメータ
そして二方向が異なるサイザーの主方向を治療するためのボックスサイザーレイアウトアルゴリズムは、(その方向パラメータを構成する際に定義されている)されています。本体のみで割合サイザーに適用される場合、特に、
伸縮方向とwx.EXPANDマークのみ寸法変化に適用されたときに二次方向にサイザー。垂直ボックスサイザーが垂直に描かれている言い換えれば、追加の各々に送信()メソッド呼び出しの
パラメータは、各項目の割合は垂直に伸縮方法を決定します。成長サイザーとそのプロジェクトのレベルに影響を与えることに加えて、割合パラメータは同じようにボックスサイザーのレベルに影響を与えます。一方、
垂直ボックスサイザーにおけるプロジェクトは、水平方向にのみ成長するのでフラグがwx.EXPAND設定されている場合、成長時間は、制御項目に使用される方向wx.EXPAND符号によって決定されますそう、
そうでない場合は、これらの項目は、それらの最小または最適なサイズを維持します。

 

静的ボックスサイザー

静的ボックスは:静的ボックスはボックスサイザーと静的(スタティック・ボックス)を合併し、静的なフレームは、ラベルの周りの素敵なボーダーとサイザーのテキストを提供します。

wx.StaticBoxSizerサイザー静的ボックスクラスのインスタンス、wx.StaticBoxSizerがあるwx.BoxSizerサブクラス。

これは、コンストラクタのパラメータは静的要件と方向です。

wx.StaticBoxSizer(ボックス、オリエント)

オリエント:オリジナルwx.BoxSizerと同じ意味。

ボックスは:wx.StaticBoxです。

wx.StaticBoxクラスは、制御のための標準的なwxPythonのコンストラクタを持っていますが、パラメータの多くは、デフォルト値を無視することができています。

wx.StaticBox(親、ID、ラベル、POS = wx.DefaultPosition、サイズ= wx.DefaultSize、スタイル= 0、名前=」staticBox」)

静的ボックスサイザーを使用して、セットのpos、サイズ、スタイル、またはパラメータ名、サイザーによって管理などの位置とサイズを必要とし、wx.StaticBox個々のスタイルのために役に立たないでください。この構成は、作る
より簡単に製造します:

ボックス= wx.StaticBox(self.panel、-1、boxlabel)

 

ステップ:

  • wx.StaticBoxオブジェクトを作成します。
  • 引数としてwx.StaticBoxSizer、意志wx.StaticBoxオブジェクトを作成します。
インポートWXの


クラスmywin(wx.Frame):
     DEF  __init__ (自己、親、タイトル):
        スーパー(mywin、セルフ)__init__(親、タイトル= タイトル)
         ホワイトボードを作成 
        パネル= wx.Panel(自己)
         #が垂直を作成し、レベルボックスボックス 
        のVBox = wx.BoxSizer(wx.VERTICAL)
        nmbox = wx.BoxSizer(wx.HORIZONTAL) 

        wx.StaticBoxオブジェクトを作成します。
        #はwx.StaticBoxSizerとwx.StaticBoxが引数として作成したオブジェクトを宣言します。
        = wx.StaticBox NM(パネル、-1、' 名前:' 
        nmSizer =wx.StaticBoxSizer(NM、wx.VERTICAL) 

        ビルド静的なテキスト入力ボックス 
        のFn = wx.StaticText(パネル、-1、" ファーストネーム" 
        数Nm1 = wx.TextCtrl(パネル、-1、スタイル= wx.ALIGN_LEFT )
        LN = wx.StaticText(パネル、-1、" " 
        の数Nm2 = wx.TextCtrl(パネル、-1、スタイル= wx.ALIGN_LEFT)
        は、4つの水平上部のボックスに追加 
        nmbox.Add(FNを、 0、wx.ALL | wx.CENTER、5 
        nmbox.Add(NM1、0、wx.ALL | wx.CENTER、5 
        nmbox.Add(LN、0、wx.ALL | wx.CENTER、5
        nmbox.Add(の数Nm2、0、wx.ALL | wx.CENTER ,. 5 #の追加レベルStaticBoxSizerボックス 
        nmSizer.Add(nmbox、0、wx.ALL | wx.CENTER、10 
        
        StaticBoxSizer垂直ボックスを追加しますボックス 
        vbox.Add(nmSizer、0、wx.ALL | wx.CENTER ,. 5 
        panel.SetSizer(のVBox)
        self.Centre()
        panel.Fit()
        self.Show() 
        関係:
        垂直ボックスボックスボックスはStaticBoxSizerを追加
        StaticBoxSizerボックスのhboxは、追加   
のApp = wx.App()
mywin(なし、' StaticBoxSizer ' 
app.MainLoopを()

結果から:新たな層の境界線、およびテキストの静的クローズドボックスボックスボックス。

 

 

 

おすすめ

転載: www.cnblogs.com/-wenli/p/12146472.html