天天看点

wxpython控件字体_将wxPython小部件字体设置为外部字体文件

我很感兴趣,在这个自己,kluged东西一起尝试一下。我看着http://wiki.wxpython.org/UsingFonts并尝试使用wx.TheFontList.FindOrCreateFont方法尝试将字体加载到wxpython中。这失败了,因为AddFontResourceA调用返回0,这是一个failure code;它没有提供进一步的信息。感谢MICROSOFT!

如果将字体安装到系统中(假设为Windows),则字体选择将起作用。

我想这对wxPython的2.8,64位Windows 7,并与Proggy fonts

from ctypes import *

import os

gdi32= WinDLL("gdi32.dll")

font_path = os.path.abspath("ProggySquare.tff")

print font_path

print gdi32.AddFontResourceA(font_path)

import wx

class DrawPanel(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent)

self.Bind(wx.EVT_PAINT, self.OnPaint)

def OnPaint(self, event=None):

face = "ProggySquareTT"

prog_font = wx.TheFontList.FindOrCreateFont(28, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, face)

def_font = wx.Font(12, wx.MODERN, wx.NORMAL, wx.NORMAL)

dc = wx.PaintDC(self)

dc.Clear()

dc.SetFont(prog_font)

dc.DrawText("Modern font Family", 50, 50)

app = wx.App(0)

frame = wx.Frame(None, title="Font Family")

DrawPanel(frame)

frame.Show()

#data = wx.FontData()

#data.EnableEffects(True)

#dlg = wx.FontDialog(None, data)

#if dlg.ShowModal() == wx.ID_OK:

# data = dlg.GetFontData()

# font = data.GetChosenFont()

#e = wx.FontEnumerator()

#e.EnumerateFacenames()

#elist= e.GetFacenames()

#elist.sort()

#print elist

app.MainLoop()