(wx python)自动调整boxsizer中的文本大小

时间:2013-04-06 18:10:30

标签: python text wxpython wxwidgets boxsizer

我正在为一个应用程序使用wxpython但是我无法使用wx.statictext自动调整文本大小(有没有一种方法可以显示文本而不使用它?)这个文本是在boxsizer中但当我调整窗口大小时它与我的按钮相反不起作用......

(我已经搜索并尝试使用大小或包装...)

全部谢谢

编辑:这里有一些代码来说明,调整窗口大小,你会看到文本没有自己调整大小

import wx
import wx.grid as grid
import time

date=time.strftime('%d/%m/%Y ? %H:%M')

app = wx.App()
win = wx.Frame(None, title="Title", size=(410, 335))
bkg = wx.Panel(win)

loadButton = wx.Button(bkg, label='Open',size=(200,40))
saveButton = wx.Button(bkg, label='Save',size=(200,40))
QRbutton=wx.Button(bkg, label='qr',size=(200,40))

ddate=wx.StaticText(bkg,-1,date)

bkg.grid = grid.Grid(bkg)
bkg.grid.CreateGrid(20, 5)

chronobox = wx.BoxSizer(wx.HORIZONTAL)
chronobox.Add(saveButton, proportion=2, flag=wx.SHAPED|wx.ALIGN_CENTER, border=5)
chronobox.Add(loadButton, proportion=2, flag=wx.SHAPED|wx.ALIGN_CENTER, border=5)

hbox = wx.BoxSizer(wx.VERTICAL)
hbox.Add(ddate, proportion=5,flag=wx.ALIGN_CENTER)
hbox.Add(chronobox, proportion=2, flag=wx.EXPAND| wx.ALL, border=5)
hbox.Add(QRbutton, proportion=1, flag=wx.SHAPED|wx.ALIGN_CENTER, border=5)

globalbox = wx.BoxSizer(wx.HORIZONTAL)
globalbox.Add(hbox, proportion=5, flag=wx.EXPAND | wx.ALL, border=5)
globalbox.Add(bkg.grid, proportion=4,flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border=5)

bkg.SetSizer(globalbox)
win.Show()

app.MainLoop()

1 个答案:

答案 0 :(得分:0)

SetLabel函数的描述是设置静态文本标签并更新控件大小以完全适合标签,除非控件具有wxST_NO_AUTORESIZE标志。 如果要更改字体大小,可以参考此article