如何为整个wxPython应用程序更改字体
我有一个用wxPython做的应用程序(使用的是2.8版本),是用python 2.7写的。
请问有没有办法把整个应用程序的字体都换掉?我想把所有显示“文本”的地方,比如wx.StaticText、wx.Button、wx.Combo这些控件的字体都改成我想要的。是不是需要用到C++的封装(wxWidgets)?如果需要的话,应该怎么做呢?
2 个回答
0
这里有一段代码,用来改变整个wxPython程序的字体。
wx.Frame.__init__(self, *args, **kwargs)
self.top_panel = wx.Panel(self)
self.top_panel.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Consolas'))
3
你可以通过继承的方式,让所有的控件使用相同的字体,具体可以参考这个讨论:
这个方法的思路是先在最上层的父控件上,比如说 wx.Panel,设置好字体。这样,所有的子控件就会自动继承这个字体。
还有一个旧的讨论提到,你需要在创建控件之前就设置好字体。如果你想在创建控件之后再改字体,那就得一个一个地去修改每个子控件的字体。你可以用 parent.GetChildren() 来获取所有或大部分的子控件。