2017-02-26 5 views
0

私はPythonのTkinterに関するチュートリアルを行っています。私は現在Entryウィジェットを使っています。私はメソッドが何をするのか理解していますが(テキスト入力フィールドに表示するデフォルトの文字列を作成します)、私が得意でないものはメソッドの最初のパラメータです。今ここに混乱が起こります。それを使って周りを回って、インデックスパラメタに異なる値を与えると、私はそれを実行するたびに、テキストは(最初の)同じ場所に現れます。だから私が言うことができるように、私は何か間違ったことをしている、または私はドキュメントを誤解しています。これは私のコードからの抜粋です:TkinterのEntryウィジェットのinsertメソッドを理解する

e1 = Entry(master) 
e1.insert(0,"First Name") 

私はこれを実行し、これまで、インデックスは0、10または100で乗り切るテキスト「名」は常にテキストフィールド

答えて

0

の先頭に表示された場合まず、「デフォルトの文字列を表示させる」というステートメントは、あまり真実ではありません。デフォルトのテキストを挿入するために使用することができますが、より正確に言えば、テキスト、ピリオドを挿入することだけです。デフォルトのテキスト、置換テキスト、追加のテキスト、任意のものにすることができます。

最初の文字の前のインデックスはすべて0として扱われます。最後の文字の後にあるインデックスは、終わりとして扱われます。空のエントリウィジェットに何かを挿入すると、すべてのインデックスは0として扱われます。したがって、インデックスは、既存のテキストのどこかにテキストを挿入するのに最も便利です。例えば

:アプリケーションプログラマとして

e1 = Entry(master) 
e1.insert(0, "hello") 
e1.insert("end", "world") 
e1.insert(5, ", ") 

、あなたは0のインデックス以外(ゼロ)または「終わり」とinsertメソッドを使用することはほとんどないだろう、おそらく「挿入します」。ただし、高度な機能(スペルチェック、自動補完など)を追加しようとすると、インデックスが非常に便利になります。

+0

ありがとうございました!今は完璧な意味があります。私は既存のテキストにテキストを挿入することさえ考えなかった。私の混乱は、私が読んでいるチュートリアルから来ていると思います。空のエントリウィジェットのe1.insert(10、 "jane")です。 –

関連する問題