Tôi có nhiều nút trong các bộ phân loại khác nhau và chúng mở rộng theo cách mà tôi muốn chúng. Tuy nhiên, khi tôi thêm phụ huynh vào một wx.BoxSizer mới được sử dụng để thêm một đường viền xung quanh tất cả các phần tử trong khung, bộ sizer đã được thêm các hàm một cách chính xác theo chiều dọc, nhưng không phải theo chiều ngang.wxPython: Các mục trong BoxSizer không mở rộng theo chiều ngang, chỉ theo chiều dọc
Các mã sau đây chứng tỏ vấn đề:
#! /usr/bin/env python
import wx
import webbrowser
class App(wx.App):
def OnInit(self):
frame = MainFrame()
frame.Show()
self.SetTopWindow(frame)
return True
class MainFrame(wx.Frame):
title = 'Title'
def __init__(self):
wx.Frame.__init__(self, None, -1, self.title)
panel = wx.Panel(self)
#icon = wx.Icon('icon.png', wx.BITMAP_TYPE_PNG)
#self.SetIcon(icon)
sizer = wx.FlexGridSizer(rows=2, cols=1, vgap=10, hgap=10)
button1 = wx.Button(panel, -1, 'BUTTON')
sizer.Add(button1, 0, wx.EXPAND)
buttonSizer = wx.FlexGridSizer(rows=1, cols=4, vgap=10, hgap=5)
buttonDelete = wx.Button(panel, -1, 'Delete')
buttonSizer.Add(buttonDelete, 0, 0)
buttonEdit = wx.Button(panel, -1, 'Edit')
buttonSizer.Add(buttonEdit, 0, 0)
buttonNew = wx.Button(panel, -1, 'New')
buttonSizer.Add(buttonNew, 0, 0)
buttonSizer.AddGrowableCol(0, 0)
sizer.Add(buttonSizer, 0, wx.EXPAND|wx.HORIZONTAL)
sizer.AddGrowableCol(0, 0)
sizer.AddGrowableRow(0, 0)
mainSizer = wx.BoxSizer(wx.EXPAND)
mainSizer.Add(sizer, 0, wx.EXPAND|wx.ALL, 10)
#panel.SetSizerAndFit(sizer)
#sizer.SetSizeHints(self)
panel.SetSizerAndFit(mainSizer)
mainSizer.SetSizeHints(self)
if __name__ == '__main__':
app = App(False)
app.MainLoop()
Bình luận ra dòng và và dòng uncommenting và loại bỏ thêm các BoxSizer và cho thấy làm thế nào tôi hy vọng tất cả mọi thứ để chức năng (không có khoảng trống của khóa học).
Tôi hoàn toàn bị mắc kẹt với vấn đề này và vẫn không có đầu mối như thế nào để sửa chữa nó.