Python+Kivyサンプルコード

Kivyアプリのテキスト関連のコード記述方法まとめ

この記事は約4分で読めます。

Kivyアプリのテキスト関連のコードの書き方などをまとめています。文字の追記、文字の連結、f文字、コピーペースト機能、入力された文字列の種類を判別する方法など。

ウィジェットのtextに文字列を追記する

代入演算子「+=」を使って追記します。

# pyファイル
self.ids.mylabel.text += 'add text'
# kvファイル
Label:
    id: mylabel
    text: 'original text'

この結果は「original text add text」になります。

kvファイルで文字列を連結する

Pythonと同じように+演算子が使えます。

# kvファイル
Label:
    text: "連結演算子が使えるよ" + root.variable_value

そのまま文字列を並べても連結されます。

# kvファイル
Label:
    text: "1,""2,""3"

kvファイルでf文字を使う

Pythonと同じようにf文字が使えます。f文字は文字列の中に変数を埋め込む書き方になります。

# kvファイル
Label:
    text: f"f文字だよ:{root.variable_value}"

コピー機能を実装する

コピー機能を実装するにはClipboardクラスのcopyメソッドを使います。

from kivy.core.clipboard import Clipboard

def copy_text(self, text):
    Clipboard.copy(text)
Button:
    text: "copy text"
    on_release: root.copy_text()

ペースト機能を実装する

ペースト機能を実装するにはClipboardクラスのpastメソッドを使います。

from kivy.core.clipboard import Clipboard

def paste_text(self, text):
    self.ids.label.text += Clipboard.past(text)
Label:
    id: label
    text: ""

Button:
    text: "copy text"
    on_release: root.paste_text()

入力された文字列を判別する

TextInputで入力されたテキストをひらがな、カタカナ、英数字、その他(漢字など)を判別する

from kivy.app import App
from kivy.uix.textinput import TextInput

class MyApp(App):
    def build(self):
        self.text_input = TextInput()
        self.text_input.bind(text=self.on_text)
        return self.text_input

    def on_text(self, instance, value):
        if all('\u3040' <= char <= '\u309F' for char in value):  # ひらがな
            print("入力モード: ひらがな")
        elif all('\u30A0' <= char <= '\u30FF' for char in value):  # カタカナ
            print("入力モード: カタカナ")
        elif all('0' <= char <= '9' or 'A' <= char <= 'Z' or 'a' <= char <= 'z' for char in value):  # 英数字
            print("入力モード: 英数字")
        else:
            print("入力モード: その他")

MyApp().run()

Comment

タイトルとURLをコピーしました