有没有办法预先确定 wx.StaticText 中文本的大小?
Is there a way to predetermine the size of text in a wx.StaticText?
我正在处理的项目涉及创建一组面板,其中一些带有 StaticText 对象,我想预先确定文本的大小,以便我可以确定 a) 使包含文本的面板和 b) 有多少 space 留给其他面板。
可能需要注意的是,我是手动调整大小和放置位置,而不是使用任何类型的 wx.Sizer。
wx.Font
骑行救援!
如果您不使用 sizer,您将负责小部件的 size
。
只需为适当的静态文本调整 font
并估计它们的大小。
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()
我正在处理的项目涉及创建一组面板,其中一些带有 StaticText 对象,我想预先确定文本的大小,以便我可以确定 a) 使包含文本的面板和 b) 有多少 space 留给其他面板。
可能需要注意的是,我是手动调整大小和放置位置,而不是使用任何类型的 wx.Sizer。
wx.Font
骑行救援!
如果您不使用 sizer,您将负责小部件的 size
。
只需为适当的静态文本调整 font
并估计它们的大小。
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()