2019/11/07(木) [n年前の日記]
#1 [pycairo] pycairoの勉強中
以下の解説サイトのサンプルを、Windows10 x64 1903 + Python 2.7.17 + PyGTK 2.24.0 + PyCairo 1.8.10 で動くように手元で修正しながら勉強中。
_PyCairo tutorial
_PyCairo tutorial
◎ フォント名の指定方法。 :
テキスト表示のところまで進んだけれど、フォント種類を指定するあたりで悩んだり。
件のサンプルは、*NIX環境で動かすことを前提にしたフォント種類名指定をしているようで、Windows環境で同じフォント種類名を指定すると、妙なフォントが選ばれて表示されてしまう。
どうやら、Windows上でフォント種類を指定する際は、Windowsにインストール済みのフォント名を指定しないと反映されないようだなと…。例えば、「Times New Roman」とか、「Georgia」とか、「MV Boli」とか。そんな感じで指定してみたら、それらしく表示された。
件のサンプルは、*NIX環境で動かすことを前提にしたフォント種類名指定をしているようで、Windows環境で同じフォント種類名を指定すると、妙なフォントが選ばれて表示されてしまう。
どうやら、Windows上でフォント種類を指定する際は、Windowsにインストール済みのフォント名を指定しないと反映されないようだなと…。例えば、「Times New Roman」とか、「Georgia」とか、「MV Boli」とか。そんな感じで指定してみたら、それらしく表示された。
◎ show_glyphs()の動作が妙。 :
show_glyphs() は、与えたグリフの一覧を描画してくれるメソッドらしいけど、どうも Windows版 PyCairo 1.8.10 のソレは、*NIX版と動作が異なるようで。*NIX版は上から下に向かって描画するけど、Windows版は下から上に向かって描画するっぽい。
仕方ないので、translate(x, y) を追記することで、描画位置をずらして対処しながら動作確認した。
もっとも、show_glyphs() を使う場面がどれだけあるかと考えると…。どんなグリフなのかを確認するために使う程度だろうし、動作の違いはさほど問題にならないであろう予感も。
もしかして、PyGObject では動作が違っているのではないかと気になって、MSYS2 + Python 3.8.0 + PyGObject で動作確認してみたところ、*NIX版と同じ動作になった。つまり、このあたり、昔の PyGTK + PyCairo、かつ、Windows版のみ、動作が異なっていたようだなと…。
仕方ないので、translate(x, y) を追記することで、描画位置をずらして対処しながら動作確認した。
もっとも、show_glyphs() を使う場面がどれだけあるかと考えると…。どんなグリフなのかを確認するために使う程度だろうし、動作の違いはさほど問題にならないであろう予感も。
もしかして、PyGObject では動作が違っているのではないかと気になって、MSYS2 + Python 3.8.0 + PyGObject で動作確認してみたところ、*NIX版と同じ動作になった。つまり、このあたり、昔の PyGTK + PyCairo、かつ、Windows版のみ、動作が異なっていたようだなと…。
[ ツッコむ ]
以上です。