Wxpython 有没有办法预先确定wx.StaticText中文本的大小?
我正在进行的项目包括创建一组面板,其中一些面板中有一个StaticText对象,我想预先确定文本的大小,以便我可以确定a)制作包含文本的面板的大小,以及b)为其他面板留有多少空间Wxpython 有没有办法预先确定wx.StaticText中文本的大小?,wxpython,Wxpython,我正在进行的项目包括创建一组面板,其中一些面板中有一个StaticText对象,我想预先确定文本的大小,以便我可以确定a)制作包含文本的面板的大小,以及b)为其他面板留有多少空间 可能需要注意的是,我是在手动调整大小和放置位置,而不是使用任何类型的wx.Sizer。wx.Font拯救 如果您不使用Sizer,您将负责小部件的大小。 简单地说,为适当的静态文本调整字体,并近似其大小 import wx class Mywin(wx.Frame): def __init__(self
可能需要注意的是,我是在手动调整大小和放置位置,而不是使用任何类型的wx.Sizer。
wx.Font
拯救如果您不使用Sizer,您将负责小部件的
大小。
简单地说,为适当的静态文本调整字体
,并近似其大小
import wx
class Mywin(wx.Frame):
def __init__(self, parent, title):
super(Mywin, self).__init__(parent, title = title,size = (700,500))
panel = wx.Panel(self)
box = wx.BoxSizer(wx.VERTICAL)
lbl0 = wx.StaticText(panel,-1, pos=(10,10))
lbl1 = wx.StaticText(panel,-1, pos=(10,100))
lbl2 = wx.StaticText(panel,-1, pos=(10,190))
txt = "Python GUI development using wxPython"
font = wx.Font(16, wx.ROMAN, wx.ITALIC, wx.NORMAL)
lbl0.SetFont(font) #Set font and size for lbl
lbl0.SetLabel(txt+' x16')
lbl0.SetSize((16*(len(txt)),30))
lbl0.SetBackgroundColour('lightgreen')
lbl1.SetLabel(txt+' xNormal') #No font change for lbl1
lbl1.SetBackgroundColour('lightblue')
font = self.GetFont()
font.SetPointSize(22)
lbl2.SetFont(font) #Set font size for lbl2
lbl2.SetLabel(txt+' x22')
lbl2.SetSize((22*(len(txt)),34))
self.Show()
app = wx.App()
Mywin(None, 'StaticText demo')
app.MainLoop()