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メソッドのボックスそのハイライト:
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を()