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