मेरे पास विभिन्न साइज़र में कई बटन हैं और वे जिस तरीके से मैं चाहता हूं उसमें विस्तार करता हूं। हालांकि, जब मैं अभिभावक को एक नए wx.BoxSizer में जोड़ता हूं जिसका उपयोग फ्रेम में सभी तत्वों के चारों ओर एक सीमा जोड़ने के लिए किया जाता है, तो जो सॉज़र जोड़ा गया है वह सही ढंग से लंबवत रूप से कार्य करता है, लेकिन क्षैतिज रूप से नहीं।wxPython: BoxSizer में आइटम क्षैतिज रूप से विस्तारित नहीं होते हैं, केवल लंबवत
निम्नलिखित कोड समस्या को दर्शाता है:
#! /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()
लाइनों और और uncommenting लाइनों और अतिरिक्त BoxSizer दूर करता है और दिखाता है कि कैसे मैं समारोह के लिए सब कुछ उम्मीद बाहर टिप्पणी करते हुए (निश्चित रूप से सफेद जगह के बिना)।
मैं पूरी तरह से इस समस्या से फंस गया हूं और अभी भी इसे ठीक करने के तरीके के बारे में कोई संकेत नहीं है।