Tkinter에서 엔트리에 입력 한 데이터를 얻을 수 없었습니다.

소개



파이썬으로 프로그램을 짜서 실험에서 얻은 데이터를 해석·정리하는 것을 최근 시작했습니다.
내보내면 욕심이 나오고, 파일명이나 데이터의 입력도 GUI 형식으로 해보자! 라고 생각해, 만들었는데, 왠지 엔트리에 입력한 데이터를 취득할 수 없다. . .
여러가지 구구였지만, 내가 하고 싶은 일이 실려 있는 기사를 찾을 수 없었기 때문에, 비망록으로서 기사로 합니다.

하고 싶은 일



항목에 입력한 데이터 검색

환경



· Windows 10 PRO
· Python Ver3.7.3
· Microsoft VS Code에서 동작 확인

처음 쓴 코드



GUItest.py
# モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox

# ウインドウ
root = tkinter.Tk()
root.title(u"テストプログラム")
root.geometry("400x300")

# データ数入力
Static1 = tkinter.Label(text=u'データ数')
Static1.place(x=5,y=5)
EditBox1 = tkinter.Entry(width=5)
EditBox1.place(x=100, y=5)

value = EditBox1.get() # エントリに入力されたデータを取得

root.mainloop()

print("value=",value) # データが格納されたことを確認

결과





value 곳에 값이 들어 있지 않다.
검색해도 검색해도 「get()로 문자를 취득한다」라고 밖에 쓰고 있지・・・
왜? ?

대처법



GUItest1.py
# モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox

def func():
    global value
    print("in the function =",EditBox1.get())
    value = EditBox1.get()

# ウインドウ
root = tkinter.Tk()
root.title(u"テストプログラム")
root.geometry("400x300")

# データ数入力
Static1 = tkinter.Label(text=u'データ数')
Static1.place(x=5,y=5)
EditBox1 = tkinter.Entry(width=5)
EditBox1.place(x=100, y=5)

b = tkinter.Button(text='Exec', command=func)
b.pack()

root.mainloop()

print("value=",value) # データが格納されたことを確認



무엇인가 자극이 없으면(?)데이터를 취득할 수 없는 것이 아닐까 생각하고, 버튼을 붙여, 눌렀을 때에 함수를 기동시키게 했는데, 함수측에서는 데이터를 취득할 수 있는 것을 알았으므로, 그 값을 전체로 사용할 수 있도록 하면 해결했다는 것입니다.

더 좋은 방법(올바른 방법?)이 있다고는 생각합니다만, 사용할 수 있으면 좋기 때문에
(^o^)v

좋은 웹페이지 즐겨찾기