Tôi đang sử dụng bộ khung lưới để đặt hai bảng trong một khung.Đặt các phần tử (bảng) trong một wx.GridBagSizer
control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)
frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)
Tôi muốn control_panel nằm phía trên main_panel (như bạn có thể thấy ở trên). Tuy nhiên điều này là kết quả tôi nhận được:
Tôi không biết lý do tại sao các bảng điều khiển là rất lớn hơn nhiều so với bảng điều khiển phía dưới, khi tôi đã chỉ định điều ngược lại. (2, 5) cho phía trên và (5, 5) cho đáy. Nó cũng có một hành vi lạ khi tôi thay đổi kích thước nó nhỏ hơn, về cơ bản nó mang lại cho tôi những gì tôi muốn (xem hình bên dưới), nhưng tôi không biết làm thế nào để duy trì tỷ lệ khi tôi làm cho nó lớn hơn một lần nữa.
Tuy nhiên khi bạn bắt đầu thay đổi kích thước lớn hơn (dù chỉ một lượng nhỏ), bạn có thể nhìn thấy (bên dưới) các hình dạng và tỷ lệ thay đổi đáng kể theo hướng khác (với đáy ngày càng trở nên nhỏ hơn nhiều và đầu lớn hơn nhiều).
Vẫn cố gắng học Sizers này và có thể không thực sự tìm thấy vấn đề này với bất kỳ ví dụ tôi đã nhìn thấy. Cũng thử thử nghiệm với tất cả các thông số và thực hiện một số thử nghiệm và tôi không thể tìm ra những gì đang xảy ra ở đây. Bất kì sự trợ giúp nào đều được đánh giá cao.
EDIT: Hình ảnh bên dưới được thêm vào nhận xét hỗ trợ bên dưới.
Tôi vẫn có thể sử dụng SetMaxSize với điều này?Tôi muốn các bảng điều khiển trên cùng để ở lại kích thước tương tự (trong y, nhưng mở rộng thông qua x) nhưng bảng điều khiển phía dưới để mở rộng (trong x và y). – johnharris85
Tôi không chắc ... bạn có thể có được nó bằng cách sử dụng bộ lồng nhau cho bảng trên cùng, nhưng tôi không biết. –