実現したいこと
Python,tkinterでEntryに入力された値を取得して、所定の文字かどうか判別し関数を実行したい
発生している問題・エラーメッセージ
・StringVar()とget()を使用して、Entryに入力後Enterを押すと入力した文字を取得するようにしているが、取得できない
・Entryに入力された文字が 'ra' であるなら、ウィンドウに表示される文字列 raw_text中のアンダーバーが「ラメセス2世」に変わるようにしているが、反応がない
該当のソースコード
import tkinter
raw_text = """1286bc
エジプト新王国______、ヒッタイトとカデシュの戦い。 最古の講和条約が成立"""
root0 = tkinter.Tk()
root0.title( 'テスト' )
root0.geometry( '1300x700+60+50' )
frame0 = tkinter.Frame(root0,width = 1200, height = 700)
frame0.pack()
tex = tkinter.Text(frame0)
tex = tkinter.Text( background = '#DFDFFF' )
tex.insert(0.,raw_text)
tex.place( x = 100, y = 10,width = 1100, height = 700 )
tex.configure(font=("Courier", 17))
entry = tkinter.Entry(root0,width=20)
entry.place( x = 500, y = 320,width = 190, height = 40 )
def func0(event):
var = tkinter.StringVar()
entry_value = var.get()
print(entry_value)
return entry_value
root0.bind('<Return>',func0)
func0
if func0 == 'ra':
tex.delete('2.9','2.14')
tex.insert(2.8,'ラメセス2世')
tex.delete('2.14','2.15')
tex.configure(font=("Courier", 17))
root0.mainloop()
試したこと
① def buttonclick()という関数を作り関数中にStringVar()とget()を用いた処理を書き、
button = tkinter.Button(root0, text='ボタン',command=btnclick) というボタンと連動させて
Entryに入力された値を表示することは成功した。
② def func(event) というraw_text中のアンダーバーを削除し、「ラメセス2世」という文字を挿入する関数をつくり、root0.bind('<Return>',func)とEnterと連動させることは成功した。
補足情報(FW/ツールのバージョンなど)
Spyder 4.2.5 を用いたPython 3.8.8 64-bit。windows7
回答1件
あなたの回答
tips
プレビュー