gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:32:12 34 4
gpt4 key购买 nike

我想要一个 wx.TextCtrl获取面板的整个剩余宽度。它放置了一个 wx.StaticText和一个 wx.Button在水平 wx.BoxSizer在垂直 wx.BoxSizerwx.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)

都没有 proportion也不是 wx.EXPAND帮助制作 TextCtrl更大,大概是因为 sizer 查看 TextCtrl自己的宽度。但是我没有找到“TextCtrl”的任何样式或标志来使其宽度可变..?

感谢您的想法!

编辑:
用有效的东西替换了“...”

最佳答案

我认为这条线有什么问题:

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 对象的访问权限。

关于wxPython wx.TextCtrl 动态调整大小以填充面板宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407382/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com