我正在爲嘗試用特定字體標記自己的公司開發應用程序。他們已經爲我提供了其他產品使用的字體的所有.otf文件。是否可以在小部件(如按鈕和靜態文本)上設置字體以使用這些外部文件? 如果是這樣,它會是平臺無關的嗎?將wxPython小部件字體設置爲外部字體文件
感謝
我正在爲嘗試用特定字體標記自己的公司開發應用程序。他們已經爲我提供了其他產品使用的字體的所有.otf文件。是否可以在小部件(如按鈕和靜態文本)上設置字體以使用這些外部文件? 如果是這樣,它會是平臺無關的嗎?將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()
otf文件與ttf不一樣,雖然它們有時可以互換使用... –