0
我發現瞭如何將字體安裝到Windows系統的參考資料,但是我找不到或找出如何在Ubuntu上這樣做。我使用的是Ubuntu 14.04,wxpython 3.0,並且我在usr/share/fonts/truetype中安裝了字體。wxPython - 如何在Ubuntu上使用已安裝的字體
我並不擔心平臺獨立性,這是一個嚴格的個人項目,只會在我的Ubuntu機器上使用。
我發現瞭如何將字體安裝到Windows系統的參考資料,但是我找不到或找出如何在Ubuntu上這樣做。我使用的是Ubuntu 14.04,wxpython 3.0,並且我在usr/share/fonts/truetype中安裝了字體。wxPython - 如何在Ubuntu上使用已安裝的字體
我並不擔心平臺獨立性,這是一個嚴格的個人項目,只會在我的Ubuntu機器上使用。
將我的評論轉換爲答案 - 我推薦使用FontEnumerator小部件。它允許您選擇和設置系統上安裝的任何字體。 wxPython演示中有一個例子。
下面是一個使用演示爲基礎演示:
import wx
########################################################################
class TestPanel(wx.Panel):
#----------------------------------------------------------------------
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
e = wx.FontEnumerator()
e.EnumerateFacenames()
elist= e.GetFacenames()
elist.sort()
s1 = wx.StaticText(self, -1, "Face names:")
self.lb1 = wx.ListBox(self, -1, wx.DefaultPosition, (200, 250),
elist, wx.LB_SINGLE)
self.Bind(wx.EVT_LISTBOX, self.OnSelect, id=self.lb1.GetId())
self.txt = wx.StaticText(self, -1, "Sample text...", (285, 50))
row = wx.BoxSizer(wx.HORIZONTAL)
row.Add(s1, 0, wx.ALL, 5)
row.Add(self.lb1, 0, wx.ALL, 5)
row.Add(self.txt, 0, wx.ALL|wx.ADJUST_MINSIZE, 5)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(row, 0, wx.ALL, 30)
self.SetSizer(sizer)
self.Layout()
self.lb1.SetSelection(0)
self.OnSelect(None)
wx.FutureCall(300, self.SetTextSize)
#----------------------------------------------------------------------
def SetTextSize(self):
self.txt.SetSize(self.txt.GetBestSize())
#----------------------------------------------------------------------
def OnSelect(self, evt):
face = self.lb1.GetStringSelection()
font = wx.Font(28, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, face)
self.txt.SetLabel(face)
self.txt.SetFont(font)
if wx.Platform == "__WXMAC__": self.Refresh()
########################################################################
class MyForm(wx.Frame):
#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None,
title="wx.FontEnumerator Tutorial",
size=(800,600))
panel = TestPanel(self)
#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()
有關進一步的參考,見下圖:
你究竟是什麼想做?據我所知,FontEnumerator在Ubuntu上工作,讓我們選擇並設置系統上安裝的任何字體。您可以在wxPython演示中查看該演示。 –
工作,謝謝 – linus72982