質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.11%

kivyの入力フォーム(TextInput)で文字入力ができない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,902

sh-tatsuno

score 15

 前提・実現したいこと

https://teratail.com/questions/68831
の回答部分をコピペして入力フォームを作ったのですが、入力がうまく機能しません。

・具体的な挙動
1)操作

  • 入力フォーム(Text Input)を作成
  • Appを立ち上げた時点で入力フォームが表示される(期待されたAppが立ち上がる)
  • その後、入力フォームをクリックし、実際に文字入力を行う(例えば hello teratailと入力)

2)結果

  • この時、入力がコンソール上に表示され、AppのText Input上に反映されません(deleteなども同様)。
  • クリックなどで実際に入力フォームを選択はできている(赤い入力線のようなものが表示される)

3)期待される操作

  • キーボードから文字を入力した際に文字の編集が行える

例
上記のように文字を選択できても削除・修正が効かない

これはどのように解決すればよろしいでしょうか

 発生している問題・エラーメッセージ

入力フォームが正しく入力できない

 該当のソースコード

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

class testApp(App):
    def build(self):
        layout = FloatLayout()
        ti = TextInput(text='Hello world', multiline=False)
        ti.bind(on_text_validate=self.on_enter)
        layout.add_widget(ti)
        return layout

    def on_enter(self, ti):
        print("on_enter[%s]" % (ti.text))

if __name__ == "__main__":
    testApp().run()

 試したこと

python3.4でも実験しました。またpygameのインストールし直しなども行いました

 補足情報(FW/ツールのバージョンなど)

Mac High Sierra 10.13.3
python 3.6.1
Kivy (1.10.0)
Kivy-Garden (0.1.4)
pygame (1.9.3)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • YouheiSakurai

    2018/02/14 08:22

    「入力フォームが正しく入力できない」がちょっと不明瞭です。「できない」をもうちょっと噛み砕いて、1)どのような操作をしたか、2)現状ではどのような結果になるのか、3)現状とは違う期待する結果とはどんなものなのか、を明記すると良いと思います。

    キャンセル

  • sh-tatsuno

    2018/02/18 15:10

    ご指摘ありがとうございます。こちらまとめて修正しますm(__)m

    キャンセル

回答 1

checkベストアンサー

+3

Kivyをインストールしてご質問のコードを実行したところテキストの編集が行えENTERキーを押下するとon_enter[編集後のテキスト]がコンソールに表示されました。おそらくこれが質問者さんの期待する動作であろうと思います。ソースコード自体は修正してません。

ひょっとしたらKivyのインストールに問題がある可能性はないんでしょうか?環境(Windows10)が質問者さんと違うので参考になるかあやしいですがKivyのインストールは

https://qiita.com/Agipy/items/4e8abd9d2247728d4efd

を参考に以下の依存モジュールをインストールしました(IDE:PyCharmのpyenv環境です)

Windows 10 64bit
Python 3.6.0
pip 9.0.1
setuptools 28.8.0
---
* Cython 0.27.3
* Kivy 1.10.0
  Pillow 5.0.0 (※)
* docutils 0.14
* kivy.deps.glew 0.1.9
* kivy.deps.sdl2 0.1.17
* Pygments 2.2.0
* pygame 1.9.3
* pypiwin32 220


*が上記ページでインストール要とかかれていたものです。
※は上記ページを見る前にKivyのみしかインストールせずに実行した際にPILがロードできないと言われたのでインストールしてしまったものです。本当はいらないのかもしれません。

なお、上記はPyCharmでインストールを直接指示したモジュール名のみのリストです。インストールした結果自動的に入った他のモジュール(Kivy-Garden 0.1.4, Pillow-PIL 0.1.dev0, etc.)は記載していません。

  • docutilsとかPygments
    Kivyを動かすのにのこれらの必要性が疑問でしたが、とりあえず細かいことは気にせずに書いてあるモジュールを全部いれてしまいました。

  • pypiwin32
    見るからにWindows用のモジュールっぽいのでMacintoshでは違うモジュールなのか、もしくは全然必要ないかも知れません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/19 22:37

    ご指摘ありがとうございます!お聞きしたことを踏まえて自分で調査したところ、
    brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
    が必要でした(おそらくこの辺がwindowsと異なっているのかと思います)
    大変助かり、また勉強になりました!m(__)m

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる