2012-04-22 9 views
0

wxPythonのグリッドとサイザーで問題が発生しました。このテーブルを含めると、何らかの形が整っているように見えますが、ウィンドウ全体が正しいサイズで表示され、項目が正しい場所。wxPythonのグリッドとサイザー

しかし、この表が含まれていると、私が推測するインナーライトグレーはパネルですか? しかし、あなたがテーブルの下の項目なぜなら、このダークグレイフィールドで隠されている

setcolsize呼び出しを削除すると、それを修正しないのいずれかの任意の返信用

おかげ

wx.Frame.__init__(self, parent, title=title) 
    panel = wx.Panel(self) 

    grid = wx.GridBagSizer(hgap=5, vgap=5) 
    # some other items comes before this 
    # FileGrid 
    fileF = wx.grid.Grid(panel) 
    fileF.CreateGrid(2,3) 
    fileF.SetColLabelSize(0) 
    fileF.SetRowLabelSize(0) 

    fileF.SetCellValue(0, 0, "Old") 
    fileF.SetCellValue(0, 1, "New") 
    fileF.SetCellValue(0, 2, "Update?") 

    grid.Add(fileF, pos=(5,0)) 
    # FileGrid end 

    runBtn = wx.Button(panel, wx.ID_APPLY, "Apply") 
    self.Bind(wx.EVT_BUTTON, self.applyScRen, runBtn) 
    grid.Add(runBtn, pos=(6,0)) 

    self.SetSizerAndFit(grid) 

Image of the gui as it is

答えて

1

フルフレーム構造を提供していませんが、これは正しい軌道に乗るはずです。

変更し、最後の行に:すでに事項を改善し

panel.SetSizerAndFit(grid) 

sizerのコンテナはpanelであり、次にframeの内部に含まれています。

EDIT

このpastebinは完全に動作するバージョンがあります。それに感謝を固定し、今 `self.CreateStatusBarは()`下部に重なって

screenshot of wxPython frame

#panel.CreateStatusBar() 
    vSizer.Add(grid, 0, wx.ALL, 5) 
    panel.SetSizerAndFit(grid) 
    self.CreateStatusBar() 
    self.SetInitialSize() 
    self.Show(True) 
+0

:それはあなたのコードに私が作ったキーの変更に続いて、この画像を生成します。 – Andreas

+0

AttributeError: 'Panel'オブジェクトに 'CreateStatusBar'属性がありません。フレームは、メニューなどのステータスバーを所有しています。私はそれを理解しています。 – Andreas

+0

上記の質問にフルフレームコードを送信できますか?パネルを仲介者として取り除くと効果的かもしれませんか? – gauden

関連する問題