1

我在使我的程序面板适合低分辨率时遇到问题。就像我的分辨率为 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 变小时我该怎么做?

谢谢。

4

1 回答 1

1

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

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

于 2017-06-07T18:41:10.870 回答