윈도우의 내부에서 wx.grid.Grid 객체를 사용하여 자동으로 윈도우에 맞는 효과를 얻는 간단한 모드를 찾고 있습니다.wxpython 그리드를 윈도우에 맞게 자동으로 만드는 방법
지금까지 필자의 4 열 그리드는 오른쪽에 많은 공백이 있지만, 모든 열 확장 또는 축소가 창 크기 변경을 기반으로하면이 방법이 더 좋지 않습니다.
작동시키기위한 방법이 있습니까?
윈도우의 내부에서 wx.grid.Grid 객체를 사용하여 자동으로 윈도우에 맞는 효과를 얻는 간단한 모드를 찾고 있습니다.wxpython 그리드를 윈도우에 맞게 자동으로 만드는 방법
지금까지 필자의 4 열 그리드는 오른쪽에 많은 공백이 있지만, 모든 열 확장 또는 축소가 창 크기 변경을 기반으로하면이 방법이 더 좋지 않습니다.
작동시키기위한 방법이 있습니까?
사용 wx.EXPAND|wx.ALL
기능
myGrid = gridlib.Grid(panel)
sizer.Add(myGrid, 1, wx.EXPAND|wx.ALL)
윈도우 크기 조정 이벤트를 잡아서 이벤트 핸들러에 바인딩해야합니다. 나는이 예제를 보여 주었다 : 당신이 컬럼의 변수 번호가있는 경우
import wx.grid
class Frame (wx.Frame):
def __init__(self, parent):
wx.Frame.__init__ (self, parent, id = wx.ID_ANY, title = u"Test", pos = wx.DefaultPosition, size = wx.Size(650,480), style = wx.DEFAULT_FRAME_STYLE|wx.RESIZE_BORDER|wx.TAB_TRAVERSAL)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
sizer = wx.BoxSizer(wx.VERTICAL)
self.panel = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
self.inner_sizer = wx.BoxSizer(wx.VERTICAL)
self.grid = wx.grid.Grid(self.panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
# Grid
self.grid.CreateGrid(10, 4)
self.grid.EnableEditing(True)
self.grid.EnableGridLines(True)
self.grid.EnableDragGridSize(False)
self.grid.SetMargins(0, 0)
# Columns
self.grid.EnableDragColMove(False)
self.grid.EnableDragColSize(True)
self.grid.SetColLabelSize(30)
self.grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
# Rows
self.grid.EnableDragRowSize(True)
self.grid.SetRowLabelSize(80)
self.grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
# Label Appearance
# Cell Defaults
self.grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
self.inner_sizer.Add(self.grid, 1, wx.ALL|wx.EXPAND, 5)
self.panel.SetSizer(self.inner_sizer)
self.panel.Layout()
self.inner_sizer.Fit(self.panel)
sizer.Add(self.panel, 1, wx.EXPAND |wx.ALL, 0)
self.grid.Bind(wx.EVT_SIZE, self.OnSize)
self.SetSizer(sizer)
self.Layout()
self.Centre(wx.BOTH)
self.Show()
def OnSize(self, event):
width, height = self.GetClientSizeTuple()
for col in range(4):
self.grid.SetColSize(col, width/(4 + 1))
if __name__ == "__main__":
app = wx.App()
Frame(None)
app.MainLoop()
단순히 OnSize
4 대신에 그 변수를 넣어.
코드와는 점점 어떻게 이미지를 제공하시기 바랍니다 그리드 확장하고 당신은 .small 예를 해결할보고 t을 어떻게 완합니까? –