Max*_*6hr 2 python wxpython resize textctrl wx.textctrl
我有 wx.TextCtrl 的问题。我只想设置控制框的大小,但我想动态地进行。这无论出于任何原因都不起作用。
这里有我的源代码。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
class Test(wx.Frame):
def __init__(self, parent):
super().__init__(parent)
# Panel
self.panel = wx.Panel(self)
# Boxes
self.numbers = wx.StaticBox(self.panel, wx.ID_ANY, "Numbers")
# Elements
self.stN1 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 1:")
self.tcN1 = wx.TextCtrl(self.numbers, wx.ID_ANY, style=wx.TE_CENTER)
self.tcN1.SetSize(wx.Size(36, 20))
self.stN2 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 2:")
self.tcN2 = wx.TextCtrl(self.numbers, wx.ID_ANY, size=wx.Size(36, 20), style=wx.TE_CENTER)
# Sizers
self.szTop = wx.BoxSizer(wx.VERTICAL)
self.szNumbers = wx.StaticBoxSizer(self.numbers, wx.VERTICAL)
self.szN1 = wx.BoxSizer(wx.HORIZONTAL)
self.szN2 = wx.BoxSizer(wx.HORIZONTAL)
self.szN1.Add(self.stN1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
self.szN1.Add(self.tcN1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
self.szN2.Add(self.stN2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
self.szN2.Add(self.tcN2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
self.szNumbers.Add(self.szN1)
self.szNumbers.Add(self.szN2)
self.szTop.Add(self.szNumbers, 0, wx.ALL, 5)
self.panel.SetSizerAndFit(self.szTop)
self.Fit()
self.Show()
if __name__ == "__main__":
app = wx.App()
Test(None)
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
这段代码会给我以下结果:
所以如你所见,当我在控件的定义中设置它时,在 TextCtrl2 中正确设置了大小。但是我有很多这样的控件,所以我想在方法“SetSizeOfTextControl(textControl)”中动态设置大小。(因为如果我以后决定使用其他尺寸,我只需要在此方法中更改 1 行,而不是在所有定义中更改 20 行。)
所以我尝试使用你在 TextCtrl1 中看到的给定方法 wx.TextCtrl.SetSize()。但这不起作用。好吧,它确实如此,但仅在我调用 SetSizersAndFit() 之前。在这一刻,大小再次设置回默认值。
这样做的正确方法是什么?使用sizer时如何动态更改wx.TextCtrl的大小?:)
非常感谢!
如果设置了小部件的最小尺寸,那么 sizers 将在计算布局时使用该值,并且当您将尺寸传递给小部件的构造函数时,它还会设置最小尺寸。但是调用SetSize不会更改最小大小,因此下次 sizer 执行它时,Layout它会将小部件的大小重置为最小大小而不是当前大小。在大多数情况下,您确实希望先调用,SetMinSize然后再调用父小部件的Layout方法。
此外,这对于帮助您解决布局问题,甚至只是更好地了解事情的工作原理非常有帮助:https : //wiki.wxpython.org/Widget_Inspection_Tool
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |