【问题标题】:Flexible 'em' style Fonts with wxPython使用 wxPython 灵活的 'em' 风格字体
【发布时间】:2010-11-16 13:12:53
【问题描述】:

我正在寻找一种呈现灵活字体的方法,该字体会根据屏幕分辨率的大小而增加和减少。我希望能够在没有 HTML 窗口类的情况下做到这一点。有办法吗?我想我已经做了很多谷歌搜索但没有成功。

编辑 这似乎是一个好问题,我更改了标题以更接近于我在寻找什么。

编辑

所以现在我已经意识到常规像素大小将按照我已经提到的方式缩放 - 但我前几天看到了这个并意识到如果有人想在他们的 wxPython 应用程序中使用 CSS 可能会有所帮助 - 它是一个库这使您可以“剥皮”您的应用程序,我已经可以想到十几种巧妙的方法来使用它 - 这是一个链接,而不是一个经过深思熟虑的问题:)

link text

【问题讨论】:

    标签: python fonts wxpython font-size


    【解决方案1】:

    也许是这样的?您可以通过这种方式缩放任何 wx.Window。不确定这是否正是您的意思。

    import wx
    
    def scale(widget, percentage):
        font = widget.GetFont()
        font.SetPointSize(int(font.GetPointSize() * percentage / 100.0))
        widget.SetFont(font)
    
    class Frame(wx.Frame):
        def __init__(self):
            super(Frame, self).__init__(None, -1, 'Scaling Fonts')
            panel = wx.Panel(self, -1)
            sizer = wx.BoxSizer(wx.VERTICAL)
            for i in range(50, 201, 25):
                widget = wx.StaticText(panel, -1, 'Scale Factor = %d' % i)
                scale(widget, i)
                sizer.Add(widget, 0, wx.ALL, 5)
            panel.SetSizer(sizer)
    
    if __name__ == '__main__':
        app = wx.PySimpleApp()
        frame = Frame()
        frame.Show()
        app.MainLoop()
    

    【讨论】:

    • 我想我的意思是根据框架区域的大小调整字体的大小......所以在 SIZE 事件中,字体会在灵活的布局中缩小。但不是这样你就无法阅读它们......现在我突然遇到了麻烦,因为你指出了我的问题的模棱两可:) 我实际上试图按照我的意思修改代码然后意识到我不知道我的意思。给我一点,我会再编辑一下这个问题。
    • 现在我再次看这个问题,我意识到这对我来说不再有意义,我不确定我在想什么。 wx 小部件集上的字体大小以像素为单位,旨在与查看设备的分辨率成比例。所以默认值已经在做我所说的了。 -- 我想我的意思可能是我想让字体像尺寸大小 wxGROW 一样“增长”并弯曲到它们的包含区域——但我再次不确定我为什么要这样做。
    • 感谢您对我正在尝试做的事情进行尝试!也许如果有人在包含文本小部件的 sizer 上使用 wxGROW 标签,它会显示我提到的行为。
    • 或许在小部件上使用 CSS 样式表会更好
    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 2014-12-02
    • 2010-11-13
    • 1970-01-01
    • 2013-04-29
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多