0

既存のGridBagSizer(sizer)内にGridBagSizer(folderBagSizer)を追加しました...ネストされたサイザー(folderBagSizer)にいくつかのラベルを入力しようとしています。彼らはサイザーの下に現れています...?

# Create static box
self.sb_ExtractOptions = wx.StaticBox(panel, label="Options for Extract", 
    size=(100,100))
folderBoxSizer = wx.GridBagSizer(4, 9)
folderBoxSizer.Add(self.sb_ExtractOptions, pos=(0,0), span=(1,4), 
    flag=wx.EXPAND, border=10)

# Create the options
label_OptionsCreated = wx.StaticText(panel, label="Created:")
label_OptionsInserted = wx.StaticText(panel, label="Inserted:")
label_OptionsModified = wx.StaticText(panel, label="Modified:")

# Add them to the sizer (folderBoxSizer)
folderBoxSizer.Add(label_OptionsCreated, pos=(1, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)
folderBoxSizer.Add(label_OptionsInserted, pos=(2, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)
folderBoxSizer.Add(label_OptionsModified, pos=(3, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)

folderBoxSizer.AddGrowableCol(2)
sizer.Add(folderBoxSizer, pos=(2, 0), span=(1,6),flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)


sizer.AddGrowableCol(2)
panel.SetSizer(sizer)

前もって感謝します。:)

4

1 に答える 1

0

それを理解しました、そしてもちろん、完全なnoobロジックの問題。

    # Create static box
    self.sb_ExtractOptions = wx.StaticBox(panel, label="Options for Extract", size=(100,100))
    sbs_ExtractOptions = wx.StaticBoxSizer(self.sb_ExtractOptions, wx.VERTICAL)
    OptionBoxSizer = wx.GridBagSizer(4, 9)

    # Create the options
    logicList = ['<', '<=', '=', '>', '>=']

    sizerIndexX = 0

    # Created
    label_OptionsCreated = wx.StaticText(panel, label="Created:")
    combo_LogicalCreated = wx.ComboBox(panel, 1, "", (25, 25), (60, 25), logicList, wx.CB_DROPDOWN)
    combo_LogicalCreated.Select(1)
    self.tc_DaysAgoCreated = wx.TextCtrl(panel)
    label_DaysAgoCreated = wx.StaticText(panel, label="days ago")
    # Add them to the sizer (optionBoxSizer)
    OptionBoxSizer.Add(label_OptionsCreated, pos=(sizerIndexX, 0), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT, border=0)
    OptionBoxSizer.Add(combo_LogicalCreated, pos=(sizerIndexX,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=1)
    OptionBoxSizer.Add(self.tc_DaysAgoCreated, pos=(sizerIndexX, 2), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT, border=0)
    OptionBoxSizer.Add(label_DaysAgoCreated, pos=(sizerIndexX,3), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT, border=0)

<snip>

   sbs_ExtractOptions.Add(OptionBoxSizer, flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)
    sizer.Add(sbs_ExtractOptions, pos=(2, 0), span=(1,6),flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)

私は最初に静的ボックスのサイザーを間違ったサイザーに追加していました-それが機能する必要がある方法は次のとおりです:

  1. 静的ボックスを作成します(self.sb_ExtractOptions)
  2. その中に存在するサイザー(この場合はStaticBoxSizer)を作成します。(sbs_ExtractOptions)
  3. サイザー内にレイアウトするオブジェクトのグリッドを作成します(OptionBoxSizer)
  4. GUI要素を作成し、OptionBoxSizerに追加します
  5. OptionBoxSizerをStaticBoxSizerに追加します(つまり、ステップ4で行ったことをステップ2に追加します)
  6. StaticBoxSizerをパネルのメインサイザー(この場合はサイザー)に追加します
  7. ビールを飲む、または5。そして、 あなたがしていることに気が狂うような注意を払って私がしたように、あなたの新しいレッスンを祝いましょう!
于 2011-07-13T14:35:05.167 に答える