【发布时间】:2013-05-09 17:31:12
【问题描述】:
我正在将 wxpython 用于应用程序,但是我无法使用 wx.statictext 自动调整文本大小(有没有办法在不使用它的情况下显示文本?)并且该文本位于 boxsizer 中,但是当我调整窗口大小时它与我的按钮不起作用...
(我已经使用 size 或 wrap 搜索并尝试了一些东西......)
谢谢大家
编辑:这里有一些代码来说明,调整窗口大小,您会看到文本不会自行调整大小
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()
【问题讨论】:
-
不太确定您在问什么?按钮有什么文本没有的功能?一些演示您的问题的示例代码会很有帮助。
-
您是否希望静态文本位于该区域的垂直中心,或者字体大小会放大以适应该区域?
-
我知道如何在一个区域上设置静态文本(我的意思是右上角、左下角等),但我不知道如何在窗口中放大正面尺寸以适应 boxsizer是调整大小,所以你知道我该怎么做吗?除了使用调整窗口大小事件?
-
它的缩放比例相同(请注意按钮字体大小也没有改变),只是您无法像在按钮上那样看到静态文本的背景。尝试添加
ddate.SetBackgroundColour(wx.BLUE),然后您应该能够看到当窗口调整大小时它确实在sizer 内缩放。 -
ahhhhh我理解,那么在调整窗口大小时,我该如何更改静态文本的大小?
标签: python text wxpython wxwidgets boxsizer