はじめに
wxpythonでstatictextのフォント変えたい!と思った時に、1つもフォント比較の記事が見つからず...同じことを思った誰かの役に立てば幸いです。
ちなみにフォント以外のstatictext関連はこちらの記事でほぼ事足りるかと思います。
環境はpythonが3.7.5, wxpythonは4.2.0です。
フォント一覧
とりあえず一覧はこちら。
英語表記
All these places have their moments.
日本語表記
日々鍛錬し、いつ来るともわからぬ機会に備えよ。
頭に振ってあるF* S* W*の数字で各フォントを識別しております。好みのフォントに目星をつけつつ次の章にお進みください。
フォントの設定方法
import wx
text = wx.StaticText(self, id=-1, label='書きたい言葉')
font = wx.Font(pixelSize, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL,
wx.FONTWEIGHT_NORMAL, underline=False,faceName="", encoding=wx.FONTENCODING_DEFAULT)
text.SetFont(font)
StaticTextのフォントは上記の方法で設定できます。(参考の公式ページ)
今回はwx.FONTFAMILYとwx.FontStyleとwx.FontWeightを変更してみました。 wx.FONTFAMILYがFと、wx.FontStyleがSと、wx.FontWeightがWと対応しています。以下に対応表を載せます。
wx.FONTFAMILY | wx.FontStyle | wx.FontWeight | |
---|---|---|---|
1 | wx.FONTFAMILY_DEFAULT | wx.FONTSTYLE_NORMAL | wx.FONTWEIGHT_NORMAL |
2 | wx.FONTFAMILY_DECORATIVE | wx.FONTSTYLE_ITALIC | wx.FONTWEIGHT_BOLD |
3 | wx.FONTFAMILY_ROMAN | wx.FONTSTYLE_SLANT | |
4 | wx.FONTFAMILY_SCRIPT | wx.FONTSTYLE_MAX | |
5 | wx.FONTFAMILY_SWISS |
たとえば F5 S1 W2のフォントが気に入った場合は、先ほどのコードを
import wx
text = wx.StaticText(self, id=-1, label='書きたい言葉')
font = wx.Font(pixelSize, wx.FONTFAMILY_SWISS , wx.FONTSTYLE_NORMAL,
wx.FONTWEIGHT_BOLD, underline=False,faceName="", encoding=wx.FONTENCODING_DEFAULT)
text.SetFont(font)
このように書きかえればOKです。
なおwx.FontEncodingはありすぎて今回やりきれず、wx.FONTENCODING_DEFAULTで固定にしました。一応、wx.FONTENCODING_CP932が日本語対応ぽかったのでちらりと試してみたのですが結構変わりそうでした。
またwx.FontWeightも横着して2種類しかやりませんでしたがもっとあるので公式をよければ覗いてください。
おわりに
wxpythonのバージョンが対応していないものだったのか、公式にある風に書いてあるものがいくつかエラーが出ました。
誰も変えたくならないのかも、非常に需要の低い記事を書いてしまったかもしれません...
フォント一覧を表記するために書いたコード全体はこちら。