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

wxPython wx.TextCtrl动态调整大小以填充面板宽度,wxpython,width,textctrl,Wxpython,Width,Textctrl,我想要一个wx.TextCtrl来获取面板的整个剩余宽度。它与wx.StaticText和wx.BoxSizer水平wx.BoxSizer垂直wx.BoxSizer放置在wx.lib.Scrolled Panel.Scrolled Panel(下面是self): 无论是比例还是wx。展开帮助将TextCtrl变大,可能是因为施胶器查看TextCtrl自身的宽度。但是我没有找到任何样式或标志来让“TextCtrl”变宽 谢谢你的建议 编辑: 将“…”替换为工作的东西我认为这行是错误的: self.

我想要一个
wx.TextCtrl
来获取面板的整个剩余宽度。它与
wx.StaticText
wx.BoxSizer
水平
wx.BoxSizer
垂直
wx.BoxSizer
放置在
wx.lib.Scrolled Panel.Scrolled Panel
(下面是
self
):

无论是
比例
还是
wx。展开
帮助将
TextCtrl
变大,可能是因为施胶器查看
TextCtrl
自身的宽度。但是我没有找到任何样式或标志来让“TextCtrl”变宽

谢谢你的建议

编辑:
将“…”替换为工作的东西我认为这行是错误的:

self.GetSizer().Add(self.fileNameSizer)
应该有一些
proporty=1
和/或
flag=wx。展开
,使嵌套的大小调整器与其主大小匹配

大概是这样的:

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()

顺便说一句:请在
在方法调用中。我还建议采用面向对象的方法,这样您就不会失去对GUI对象的访问。

如果您让人们更容易理解,您会得到更多答案。如果您发布了一个实际运行的自包含的最小示例,这将更容易回答。我想我知道有什么问题,但我不想发布一个在我检查之前请回答,我不会花所有时间替换“…”s、 等等@tom10:谢谢你这么彻底,但我想把没意思的东西放在外面,并假设如果我从一个认为自己知道问题所在的人那里得到一个提示,我就能够找出细节…:-|无论如何,我替换了…如果你创建一个自包含的最小可运行示例来演示专业问题。与我的答案类似。非常感谢-我看错了尺寸…我真傻。是的,我已经遵循了你的OO建议,但为什么我要将函数和
放在一起(我的意思是,除了样式之外)?仅用于样式。这是一种常见的惯例。使用了一些样式,但这太奇怪了,以至于很难阅读。好吧,我试试。:-)谢谢你的背景!
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()