0

これは私のコードです:http://pastebin.com/WwZri3e3

idは、各ラベルの右側にテキストボックスを実装する方法を知りたいです。名の名前とユーザー名。

wxpythonのドキュメントは非常に貧弱であり、私はwxpythonでより良い学習体験を得るためにできる限りのことを試みましたが、現時点では空中を振り回しています。

他のコードを研究することは、ドキュメントを読むことよりもはるかに役立つことがわかりました。

誰かがいくつかの洞察を提供できますか?ありがとう!

4

2 に答える 2

0

私は通常、水平ボックスサイザーを作ります

def addWithLabel(parent,label,wxCtrl):
       sz_h1 = wx.BoxSizer(wx.HORIZONTAL)
       txt = wx.StaticText(parent,-1,label)
       sz_h1.Add(txt)
       sz_h1.Add(wxCtrl)
       return sz_h1

my_vertical_sizer.Add(addWithLabel(my_parent,"Some Label:",wx.TextCtrl(my_parent,-1)))

または、その逆ではなく、グリッドバッグサイザーをボックスサイザーに追加することもできます...

于 2012-12-11T17:16:46.510 に答える
0

私は通常、GridBagSizerだけを使用し、いくつかのポジショニング変数を使用して柔軟性を維持しています。

スクラッチパッドのバージョンは次のようになります。

self.gbs = wx.GridBagSizer(hgap=5, vgap=5)
lbl_name_first = wx.StaticText(self.panel, label = "First Name :" )
txt_name_first = wx.TextCtrl(self.panel,size=(200,-1))
self.gbs.Add(lbl_name_first, pos=(1, 1))
self.gbs.Add(txt_name_first, pos=(1, 2))

水平方向の配置にいくつかの「定数」を定義し、垂直方向の配置に行数を定義すると、以下のコードのようになります。列とスパンに名前を付けると、どこかに少し余分なスペースを作成する必要がある場合に非常に便利です。

# all caps mark 'constants'
COL_LEFT_LABEL = 2
COL_LEFT_FIELD = 3
SPAN_FULL_WIDTH = 4
nRowPosition = 1

lbl_name_first = wx.StaticText(self.panel, label = "First Name :" )
txt_name_first = wx.TextCtrl(self.panel,size=(200,-1))
self.gbs.Add(lbl_name_first, pos=(nRowPosition, COL_LEFT_LABEL))
self.gbs.Add(txt_name_first, pos=(nRowPosition, COL_LEFT_FIELD), flag=wx.EXPAND, span=(1, SPAN_FULL_WIDTH))
nRowPosition += 1

あなたはそれをさらに洗練することができます(そしてそうすべきです)が、これはあなたが始めるのに役立つはずです。

于 2012-12-11T20:43:40.723 に答える