2019-01-13引き続きKivyのドキュメントを中心に勉強して、実装力を上げていきます。今回は、KivyのTextInputを使って文字入力を受け取るところまで。Kivyはデフォルトでは日本語フォントが入っておらず、日本語を表示できません。そのあたりの解決法も合わせてまとめておきます。今回のゴールはこちら。日本語表示と、入力された文字列の受け取りまでできたー。2019年1月11日スポンサーリンクもくじソースコードTextInputオブジェクトをつくる日本語を表示させる入力された文字列を受け取るまとめ参考ソースコードまずは上記の動画の画面を作るコードを貼っておきます。基本はドキュメントとか、下のリンク先の記事を参考にして作ってます。0.1,"top":23}では、中身を見ていきましょう。TextInputオブジェクトをつくる今回の肝は、なんといってもこの一文でしょう。font_name='IPAfont00303/ipag.ttf')割とこの一文に今日学んだことのすべてが詰まっています。Kivyで、文字入力フォームを作る方法の一つに、TextInputオブジェクトを使う方法があります。今回このインスタンスに渡している引数は3つです。text:初期表示の文字列を指定。multiline:真偽値で、行数を指定。Trueにすると複数行入力が可能。font_name:使用するフォントを指定。ダウンロードページからダウンロードしてきたttfファイルを指定している。このTextInputオブジェクトをFloatLayoutで表示させることで画面を作っています。ある意味HTMLよりシンプルかも。日本語を表示させるやったー!テキストボックスができたぞ!と思ったのも束の間。衝撃的な壁にぶつかりました。なんと、Kivyはデフォルトでは日本語表示に対応していないのです。そのあたりの事情も、Kivyが日本で普及していない理由の一つなんだとか。Kivyで入力モジュール作ってたら、日本語入力に対応していないという壁にぶつかってしまった。厳密には、日本語は受け取れるけど、画面上では文字化けしてしまう感じ。ほかのGUIライブラリにするか、無理やり日本語使えるようにするか迷いどころだ。2019年1月10日しばらく途方にくれていたのですが、上のツイートをしたところ、Kivyのドキュメントの翻訳を手がけている激強エンジニアの方から、「日本語フォントをインストールすればいけるよ」というアドバイスをいただくことができました。そこで紹介してもらったこのサイトを参考にしたところ、あっさり解決することができました。Kivyで日本語の表示ができず困っていたのですが、Kivyのドキュメントの翻訳もされてる激強エンジニアの方(@dario_okazaki)にアドバイスもらえたおかげであっさり解決しました!!ほんとにありがたい。ちなみに日本語フォント導入で解決しました。完全に余談なんですが、やっぱりメンターって大事ですね。個人的には独学は独学でしか身につかないことがあるのでおすすめなのですが、やっぱり成長が遅いのと、正しい知識を得られないというデメリットは大きいと思います。入力された文字列を受け取るさて、実はTextInputオブジェクトを作って、日本語表示させただけでは、まだユーザーの入力を受け取ることができません。入力された文字列を取得するためのクラスメソッドを作ります。(ti.text))シンプルですね。あとはこの一文を書けばOKです。ti.bind(on_text_validate=self.on_enter)bindメソッドを使って、Enterキーをトリガーに入力された文字列を取得するメソッドを起動してます。bindメソッドは、ユーザがGUIに対して行った入力操作をトリガーにして、何らかの処理を行うよう定義するメソッドです。イベントリスナーみたいなものでしょうか。まとめさて、これで一通りポイントはまとめ終わりました。画面実装のKivy言語などはまだ慣れないですが、Kivy自体は使いやすく、学習コストはそこまで高くないかもなぁと言うのがKivy3日目の感想です。少なくとも初めてHTML学んだときの方がはるかに苦戦した気がします笑Kivyをいじってるのはとても楽しいのですが、日本語対応しかり、あと一歩物足りない感じがあります。このもやもやの原因は何なのでしょうか?とはいえ、どうやらKivyでAndroidアプリ開発ができると聞いてテンションが上がっています。APKを作成なんだかんだスマホアプリはチャレンジしたい分野なので楽しみですね。コメントをキャンセルメールアドレスが公開されることはありません。千葉県を中心にボランティア活動や勉強会などを行っています。好きな言語はC#とPythonとC++です。関係の技術が好きです。XamarinとかTypeScriptも触ってます。質問・相談・お仕事のご依頼は、Twitterまたは問い合わせフォームまで。今月の人気記事1一年間プログラミングを独学した過程を振り返ってわかったこと。