Tkinterを利用してテキストボックスを実装してみます。
「メッセージ出力」ボタンをクリックすると、テキストボックスに入力された文字列がメッセージボックスに表示されます。また「削除」ボタンをクリックするとテキストボックスの文字が削除され、「セット」ボタンをクリックすると「こんばんわ」という文字列がテキストボックスに反映されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from tkinter import * from tkinter import messagebox root=Tk() root.title("テキストボックス") root.geometry("250x150") txt_word=StringVar(value="こんにちわ") def push_message(): messagebox.showinfo("確認", txt_word.get()) def delete_message(): txt.delete(0, END) def set_message(): txt_word.set("こんばんわ") txt = Entry(textvariable=txt_word, width=20) txt.place(x=20, y=20) txt.focus() Button(root, text="メッセージ出力", command=push_message).place(x=20, y=50) Button(root, text="削除", command=delete_message).place(x=20, y=80) Button(root, text="セット", command=set_message).place(x=20, y=110) root.mainloop() |
8行目
テキストボックスで利用する文字列を格納するオブジェクト(上記ではtxt_wordという名前)を、StringVarコンストラクタを利用して生成しています。このtxt_wordを介してテキストボックスに値を設定したり、入力した値を取得するなどが可能となります。初期値として「こんにちわ」を設定しています。整数を利用したい場合はIntVarを利用します。
11行目
get()を利用してテキストボックスに入力された値(正確にはtxt_wordの値)を取得し、メッセージボックスに表示させています。
14行目
テキストボックスに入力された値をdelete()で削除しています。第1引数の0は文字列のはじめ、第2引数のENDは文字列の終わりを指定し、0~ENDですべての文字列を削除しています。
17行目
set()を利用してテキストボックス(正確にはtxt_wordの値)に「こんばんわ」という文字列を設定しています。insert()で下記のように記述することも可能です。
1 2 3 |
def set_message(): txt.delete(0, END) txt.insert(0,"こんばんわ") |
19行目
テキストボックスを生成しています。textvariableオプションに8行目で生成したtxt_wordを指定しています。また画面の初期起動でこのテキストボックスにフォーカスが当たるように設定しています(21行目)。