ラズパイでこんなのできるよ

Kivyで顔認証アプリ制作①基本操作編(タッチパネル反応しない...)

こんにちは!まっきーです(@makky_study

Kivyを使って簡単なアプリを作成していこうと思います。

今回は第一弾ということで簡単な使い方を確認していきます!

本記事の内容
  • Kivyの仕組みを簡単に説明
  • Kivyの使い方
  • 日本語フォント設定方法
  • タッチパネルが反応しない問題を解決

Kivyのインストール方法はラズパイにKivy(1.11.1)をインストールする方法にまとめてありますので、インストールがまだの方は先にインストールしてしまいましょう!

使用機器

  • RaspberryPi 3B+
  • ラズパイタッチディスプレイ

基本的な操作方法

kivyでは.kvという拡張子のファイルにKivy言語(CSSのようなもの)を記述して書くのが一般的です。

レイアウトは.kv(kivy言語)、機能は.py(Python)と

Kv Languageを使用することでレイアウトと機能の記述を分けることができます

また、Kivyはパーツ、レイアウトなどのwidget( グラフィカルユーザインタフェースを構成する部品要素、およびその集まり)を組み合わせてGUIを作成します。

Kivyでアプリを作る際に行うこと

  • Appクラスを継承してサブクラスを作る(Python側)
  • ラベルやボタンなどのレイアウトを追加する(kivy側)

たったこれだけです!

実際にプログラムを動かしてみます。下記のプログラムの実行結果です。

Pythonコード

Kivy言語

KivyファイルとPythonファイルを結び付けているのは、kivyファイルの名前です。Python側でTestApp(App)、Kivy側でtest.kvとすることが必要です。

クラスの名前が、AbcApp(App)だったとしたら、Kivy側はabc.kvということです(小文字に注意)

基本的な説明についてはPython Kivyの使い方① ~Kv Languageの基本~がめちゃめちゃわかりやすいので是非参考にしてください。

日本語フォントの表示

Python側コードのマーカーが引いてある部分は、日本語フォントを使用するための設定です。

その前に、日本語用のフォントをインストールします。今回はTakaoフォントをインストールします。

お好きなタイプのパスをコピーして、Pythonコード内に追加して下さい。

タッチパネルが反応しないときの対処法

クリックでは反応するけど、タッチでは反応しない....

というトラブルが発生しましたので色々調べて、解決方法を見つけました!

以下の方法で試してみてください!

①ディスプレイ環境の設定

ID=〇のところの数字を0~6まで変更しながらPythonファイルを実行してみてください。

数字の意味については公式ドキュメントに書いてあります。

私の場合、それでもできませんでしたので、次の方法で実行しました。

②ラズパイモニター用の設定

私の使用しているディスプレイはラズパイ用だったようです。(公式ではないですが)

以下の設定を行います。まず、nanoテキストを開きます。

様々なことが書いてあるエディタが開くはずです。[input]と書いてある部分を以下のように書き換えてしまってください。そうするとタッチできるようになるはずです!

こちら参考にしました。

今回はここまでです。次回は画像を表示させていきます!

参考サイト

Kivy公式ドキュメント

Python Kivyの使い方① ~Kv Languageの基本~

-ラズパイでこんなのできるよ

© 2020 まきろぐ Powered by AFFINGER5