CUBE SUGAR CONTAINER

技術系のこと書きます。

Python: インポートするだけで Kivy が日本語を表示できるようになる japanize-kivy を作った

Python の GUI フレームワークである Kivy は、そのままだと日本語が表示できない。 そこで、インポートするだけで日本語を表示できるようにするパッケージ japanize-kivy を作った。

github.com

知っている人はピンと来るはずだけど名前や思想は以下のパッケージをインスパイアしている。

github.com

使った環境は次の通り。 パッケージがサポートする Python は 3.6 以上を想定している。

$ sw_vers  
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G84
$ python -V
Python 3.7.4

インストール

pip からインストールできる。

$ pip install japanize-kivy

試す

Python のインタプリタを起動する。

$ python

japanize_kivy パッケージをインポートする。

>>> import japanize_kivy

あとは日本語を含む Kivy のアプリケーションを用意する。

>>> from kivy.app import App
>>> from kivy.uix.boxlayout import BoxLayout
>>> from kivy.uix.label import Label
>>> class GreetingApp(App):
...     def build(self):
...         main_screen = BoxLayout()
...         label = Label(text='こんにちは、世界')
...         main_screen.add_widget(label)
...         return main_screen
... 
>>> GreetingApp().run()

以下のように日本語が表示できるようになる。

f:id:momijiame:20190730183416p:plain

インポートしないと、次のように日本語が豆腐になる。

f:id:momijiame:20190730183451p:plain

フォントのライセンスに関して

日本語を表示するためのフォントは IPAex ゴシックフォントを使わせてもらっている。 そのため、本パッケージを利用する上ではライセンスへの同意が必要となる。

次のようにするとライセンスが表示されるので、IPA への感謝と共に同意してほしい。

>>> japanize_kivy.show_license()

いじょう。