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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6241閲覧

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

sh-tatsuno

総合スコア17

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2018/02/13 16:28

編集2018/02/18 06:45

前提・実現したいこと

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

・具体的な挙動
1)操作

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

2)結果

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

3)期待される操作

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

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

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

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

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

該当のソースコード

python

1from kivy.app import App 2from kivy.uix.floatlayout import FloatLayout 3from kivy.uix.textinput import TextInput 4 5class testApp(App): 6 def build(self): 7 layout = FloatLayout() 8 ti = TextInput(text='Hello world', multiline=False) 9 ti.bind(on_text_validate=self.on_enter) 10 layout.add_widget(ti) 11 return layout 12 13 def on_enter(self, ti): 14 print("on_enter[%s]" % (ti.text)) 15 16if __name__ == "__main__": 17 testApp().run() 18

試したこと

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)

KSwordOfHaste👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YouheiSakurai

2018/02/13 23:22

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

2018/02/18 06:10

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

回答1

0

ベストアンサー

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

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

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

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

text

1Windows 10 64bit 2Python 3.6.0 3pip 9.0.1 4setuptools 28.8.0 5--- 6* Cython 0.27.3 7* Kivy 1.10.0 8 Pillow 5.0.0 (※) 9* docutils 0.14 10* kivy.deps.glew 0.1.9 11* kivy.deps.sdl2 0.1.17 12* Pygments 2.2.0 13* pygame 1.9.3 14* 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 02:02

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sh-tatsuno

2018/02/19 13:37

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問