wxPython.TextCtrl动态调整大小以填充面板宽度



我想要一个wx.TextCtrl来占据面板的整个剩余宽度。它与wx.StaticTextwx.Button一起放置在水平wx.BoxSizer和垂直wx.BoxSizer中的wx.lib.scrolledpanel.ScrolledPanel(下面是self):

# create TextCtrl
self.fileNameInput = wx.TextCtrl (self, style=wx.TE_PROCESS_ENTER)
# create horizontal sizer with 3 items
self.fileNameSizer = wx.BoxSizer (wx.HORIZONTAL)
self.fileNameSizer.Add (wx.StaticText (self, -1, 'none'), flag=(wx.ALIGN_CENTER_VERTICAL))
self.fileNameSizer.Add (self.fileNameInput, proportion=1, flag=(wx.EXPAND | wx.ALIGN_CENTER_VERTICAL))
self.fileNameSizer.Add (wx.Button (self, label='Button'), flag=(wx.ALIGN_CENTER_VERTICAL))
# create vertical sizer
self.SetSizer (wx.BoxSizer (wx.VERTICAL))
self.GetSizer ().Add (self.fileNameSizer)

proportionwx.EXPAND都没有帮助使TextCtrl变大,可能是因为sizer查看TextCtrl自己的宽度。但我没有为"文本Ctrl"找到任何使其宽度可变的样式或标志。。?

谢谢你的想法!

编辑:用正在工作的替换"…"

我认为错误的是这一行:

self.GetSizer().Add(self.fileNameSizer)

应该有一些proportion=1和/或flag=wx.EXPAND,以使嵌套的sizer与其主大小匹配。

类似这样的东西:

import wx
class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        self.panel = wx.Panel(self)
        self.label = wx.StaticText(self.panel, label="Label")
        self.text = wx.TextCtrl(self.panel)
        self.button = wx.Button(self.panel, label="Test")
        self.button1 = wx.Button(self.panel, label="ABOVE")
        self.button2 = wx.Button(self.panel, label="BELLOW")
        self.horizontal = wx.BoxSizer()
        self.horizontal.Add(self.label, flag=wx.CENTER)
        self.horizontal.Add(self.text, proportion=1, flag=wx.CENTER)
        self.horizontal.Add(self.button, flag=wx.CENTER)
        self.vertical = wx.BoxSizer(wx.VERTICAL)
        self.vertical.Add(self.button1, flag=wx.EXPAND)
        self.vertical.Add(self.horizontal, proportion=1, flag=wx.EXPAND)
        self.vertical.Add(self.button2, flag=wx.EXPAND)
        self.panel.SetSizerAndFit(self.vertical)  
        self.Show()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()

BTW:请停止在方法调用的(之前添加空格。此外,我建议采用面向对象的方法,这样您就不会失去对GUI对象的访问权限。

相关内容

  • 没有找到相关文章

最新更新