ユーザーが入力してEnterキーを押した後にstr()とint()に変換する必要がある値があります。これは、ユーザーの入力がまだ起きていないと何も変換しないようにしようとし続ける:ユーザーがEnterを押すのを待つ方法
from tkinter import *
from tkinter import ttk
root = Tk()
month = StringVar()
combobox = ttk.Combobox(root, textvariable = month)
combobox.pack()
combobox.config(values = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
year = StringVar()
Spinbox(root, from_ = 1990, to = 2014, textvariable = year).pack()
yearstr = str(year)
yearcheck = int(yearstr)
if yearcheck >= 1990 and yearcheck < 2014:
tkMessageBox.SelectedDate("Date Selector", "The date you have selected is ", str(month), ", ", str(year))
else:
tkMessageBox.DateError("Date Selector", "Year must be 1990-2014")
root.mainloop()
あなたの質問は 'tkinter'権利についてですか?そうでなければ 'input()'を実行することができますが、GUIコンテキストではそれは悪いでしょう。 –
tkinterの 'mainloop()'がkeypressesを処理しました。ウィジェットのコンストラクタに 'command = my_function'キーワード引数を追加することで、必要な変換を行うイベント処理コードを記述し、そのコードをウィジェットにアタッチする必要があります。 – martineau