如何动态缩小或增加面板内容?

时间:2017-06-07 17:48:35

标签: python wxwidgets boxsizer

我的程序面板适合低分辨率。就像我的分辨率为800 x 600,而且我的面板比这大,所以一切都被切断了,特别是屏幕底部的按钮。

所以,我以模拟程序为例:

import wx

MAIN_FRAME_SIZE = (190, 150)

class MainFrame(wx.Frame):  

    def __init__(self):

        wx.Frame.__init__(self, None, id = -1, title = 'Hello, World!', size = MAIN_FRAME_SIZE)

        vertBox = wx.BoxSizer(wx.VERTICAL)   

        staticText = wx.StaticText(self, label = 'Hello, World!')

        vertBox.Add(staticText, 0, wx.ALL, 40)

        self.SetSizer(vertBox)       

if __name__ == '__main__':
    app = wx.App()
    frame = MainFrame()
    frame.Show(True)
    app.MainLoop()

那么,那么我的问题是如何制作'Hello,World!'当MainFrame变大时,文字会变大,当MainFrame变小时我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用一些启发式方法根据帧大小选择字体大小,或者您可以使用GetTextExtent()计算字符串的长度,并找到与您想要的字体大小相等的字体大小。

要在调整框架大小时动态执行此操作,您需要捕获wxEVT_SIZE并更改其处理程序中的字体。