Kivy は、NUI (Natural User Interface) を持つモバイルアプリやその他のマルチタッチアプリケーションソフトウェアを開発するためのフリーでオープンソースの Python フレームワークです。MIT ライセンスのもとで配布され、Android, iOS, Linux, macOS そして Windows で動作させることができます。
Wikipedia より引用、翻訳、編集
使ったことのなかった Python の GUI ライブラリ(フレームワーク)、Kivy に興味を持ったので [1]、ひととおりウィジェットのサンプルを作ってみようとしています。サンプルを作っていくにあたって、どんなスタイルでコーディングするか、テンプレートみたいなものを固めていこうとあれこれ試し始めました。
今回はテキストインプットのサンプルを紹介します。
Python のコードのみと Python と、同じ動作をする UI 部分を分離して Kv 言語で記述したファイルのサンプルを併せて紹介しています。
下記の環境で動作確認をしています。
Fedora Linux 36 | x86_64 | |
python3 | 3.10.5-2.fc36.x86_64 | |
Kivy | 2.1.0 |
TextInput (Python)
テキストインプットは、編集可能なプレーンテキスト用のボックスを提供します。
kivy_textinput.py
サンプルは、複数行を入力(デフォルト)するものと入力が一行の場合の2つのテキストインプットを表示しています。
kivy_textinput.py の実行例
kivy_textinput.py の出力例
ウィジェット <kivy.uix.textinput.TextInput object at 0x7f59336c05f0> の入力: テキストインプットは、編集可能なプレーンテキスト用のボックスを提供します。 <kivy.uix.textinput.TextInput object at 0x7f59336c05f0> のフォーカスが外れました。 <kivy.uix.textinput.TextInput object at 0x7f59336e6110> がフォーカスされました。 ウィジェット <kivy.uix.textinput.TextInput object at 0x7f59336e6110> の入力: テキストインプットは、編集可能なプレーンテキスト用のボックスを提供します。
TextInput (Python + Kv)
指定したファイルを読み込むようにしたかったので、ここでは Builder.load_file() を使って、指定したファイルを読み込むようにしています。
kivy_textinput_1.py
kivy_textinput_1.kv
kivy_textinput_1.py の実行例
ショートカット
テキストインプットでは、下記のショートカットキーが利用できます。
ショートカット | 説 明 |
---|---|
Left | カーソルを左に移動。 |
Right | カーソルを右に移動。 |
Up | カーソルを上に移動。 |
Down | カーソルを下に移動。 |
Home | カーソルを行の先頭に移動させる。 |
End | カーソルを行の末尾に移動させる。 |
PageUp | カーソルを三行前の先頭に移動させる。 |
PageDown | カーソルを三行後の先頭に移動させる。 |
Backspace | カーソルの直前にある文字を一文字削除する。 |
Del | カーソルの直後にある文字を一文字削除する。 |
Shift + <dir> | 文字列選択の開始。<dir> は選択を始める方向で Up, Down, Left あるいは Right。 |
Control + c | 選択範囲をコピーする。 |
Control + x | 選択範囲をカットする。 |
Control + v | クリップボードの内容をペースト(貼り付け)する。 |
Control + a | Select all the contentすべての内容を選択する。 |
Control + z | undo(アンドゥ)、直前の操作を取り消して元の状態に戻す。 |
Control + r | redo(リドゥ)、直前の操作を取り消す(アンドゥ)機能で一旦取り消した操作をやり直す。 |
参考サイト
- bitWalk's: Kivy をちょろっと使ってみた [2022-07-10]
- momijiame/japanize-kivy: インポートするだけで Kivy が日本語を表示できるようになります
- japanize-kivy · PyPI
- Python: インポートするだけで Kivy が日本語を表示できるようになる japanize-kivy を作った - CUBE SUGAR CONTAINER [2019-07-30]
- Kv language — Kivy 2.1.0 documentation
- Widgets — Kivy 2.1.0 documentation
- Text Input — Kivy 2.1.0 documentation
にほんブログ村
0 件のコメント:
コメントを投稿