关于wxPython的字体
时间:2010-11-05
来源:互联网
Python code
当我使用 wx.SystemSettings_GetFont 获得字体,然后再用 SetPointSize 改变字体大小,
不管我将字体设为多大,或设小,都没有效果,在后继的使用中,字体总是保持一个默认的大小。
而用 wx.Font(...) 新建一个字体,再用 SetPointSize 改变字体大小,效果却立竿见影。
要它变大,就变大,要它变小,就变小。
不明白为什么?
我使用的是 Windows XP平台,wxPython的版本是2.8,python的版本是 2.7。
完整可运行的代码如下:
Python code
# font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT) # font.SetPointSize(5) font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Courier New') font.SetPointSize(9)
当我使用 wx.SystemSettings_GetFont 获得字体,然后再用 SetPointSize 改变字体大小,
不管我将字体设为多大,或设小,都没有效果,在后继的使用中,字体总是保持一个默认的大小。
而用 wx.Font(...) 新建一个字体,再用 SetPointSize 改变字体大小,效果却立竿见影。
要它变大,就变大,要它变小,就变小。
不明白为什么?
我使用的是 Windows XP平台,wxPython的版本是2.8,python的版本是 2.7。
完整可运行的代码如下:
Python code
#!/usr/bin/python # -*- coding: utf_8 -*- import wx class GoToClass(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(390, 350)) panel = wx.Panel(self, -1) # font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT) # font.SetPointSize(5) font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Courier New') font.SetPointSize(9) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) st1 = wx.StaticText(panel, -1, u'类的名称') st1.SetFont(font) hbox1.Add(st1, 0, wx.RIGHT, 8) tc = wx.TextCtrl(panel, -1) hbox1.Add(tc, 1) vbox.Add(hbox1, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 10) vbox.Add((-1, 10)) hbox2 = wx.BoxSizer(wx.HORIZONTAL) st2 = wx.StaticText(panel, -1, 'Matching Classes') st2.SetFont(font) hbox2.Add(st2, 0) vbox.Add(hbox2, 0, wx.LEFT | wx.TOP, 10) vbox.Add((-1, 10)) hbox3 = wx.BoxSizer(wx.HORIZONTAL) tc2 = wx.TextCtrl(panel, -1, style=wx.TE_MULTILINE) hbox3.Add(tc2, 1, wx.EXPAND) vbox.Add(hbox3, 1, wx.LEFT | wx.RIGHT | wx.EXPAND, 10) vbox.Add((-1, 25)) hbox4 = wx.BoxSizer(wx.HORIZONTAL) cb1 = wx.CheckBox(panel, -1, 'Case Sensitive') cb1.SetFont(font) hbox4.Add(cb1) cb2 = wx.CheckBox(panel, -1, 'Nested Classes') cb2.SetFont(font) hbox4.Add(cb2, 0, wx.LEFT, 10) cb3 = wx.CheckBox(panel, -1, 'Non-Project classes') cb3.SetFont(font) hbox4.Add(cb3, 0, wx.LEFT, 10) vbox.Add(hbox4, 0, wx.LEFT, 10) vbox.Add((-1, 25)) hbox5 = wx.BoxSizer(wx.HORIZONTAL) btn1 = wx.Button(panel, -1, 'Ok', size=(70, 30)) hbox5.Add(btn1, 0) btn2 = wx.Button(panel, -1, 'Close', size=(70, 30)) hbox5.Add(btn2, 0, wx.LEFT | wx.BOTTOM , 5) vbox.Add(hbox5, 0, wx.ALIGN_RIGHT | wx.RIGHT, 10) panel.SetSizer(vbox) self.Centre() # self.SetClientSize(panel.GetBestSize()) self.Show(True) app = wx.App(redirect=False) GoToClass(None, -1, u'汉仪颜楷繁') app.MainLoop()
作者: bearnedzq 发布时间: 2010-11-05
加这句
self.SetFont(font)
self.SetFont(font)
作者: zanpen2000 发布时间: 2010-11-05
试了,还是么有效果啊。
我使用的是 Windows XP平台,wxPython的版本是2.8,python的版本是 2.7。
我将代码简化了些:
Python code
我使用的是 Windows XP平台,wxPython的版本是2.8,python的版本是 2.7。
我将代码简化了些:
Python code
class GoToClass(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(390, 350)) panel = wx.Panel(self, -1) font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT) self.SetFont(font) font.SetPointSize(30) # font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Courier New') # font.SetPointSize(9) st1 = wx.StaticText(panel, -1, u'类的名称') st1.SetFont(font) self.Centre() # self.SetClientSize(panel.GetBestSize()) self.Show(True) app = wx.App(redirect=False) GoToClass(None, -1, u'汉仪颜楷繁') app.MainLoop()
作者: bearnedzq 发布时间: 2010-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28