import tkinter from PIL import Image, ImageTk root = tkinter.Tk() image = Image.open("./chap3-back.png") root.title("リリーに質問") root.minsize(640,480) root.option_add("*font",["MS Pゴシック",24]) canvas = tkinter.Canvas(bg="black",width=640,height=480) canvas.place(x=0,y=0) photo = ImageTk.PhotoImage(image, master=root) tkinter.Label(root, image = photo).pack() question = tkinter.Label(text="知りたいのは何分かな?") question.place(x=100,y=40) entry = tkinter.Entry(width=12,bd=4) entry.place(x=50,y=133) askbutton = tkinter.Button(text="聞く") askbutton.place(x=260,y=140) answer = tkinter.Label(text="・・・・・・",bg="white") answer.place(x=115,y=235) def ask_click(): val = entry.get() minutes = float(val) hours = round(minutes/60,2) answer["text"] = str(hours) + "時間だね!" askbutton["command"] = ask_click root.mainloop()
というコードを本を模写して書いて、GUI画面を表示させました。
しかし、色々と構造的に理解できないところがあります。
まず、ask_clickの
answer["text"] = str(hours) + "時間だね!"
の部分ですが、なぜ
answer["text"] = str(hours) + "時間だね!" return answer["text"]
とretunがないのでしょうか?returnがないなら、メソッドで処理した値が使えないと思うのですが、returnがなくても画面にstr(hours) + "時間だね!" が表示されいて、どうしてそれでも動くのか疑問に思っています。
あと、
askbutton["command"] = ask_click
で()がない理由がわかりません。
()がないということは引数をとるメソッドはこのボタンを押す処理では使えないということなのでしょうか?
最後に、
answer["text"] = str(hours) + "時間だね!"
と
askbutton["command"] = ask_click
で、["text"]と["command"]とインデックスを指定している理由がわかりません。
answer配列もaskbutton配列も上記の2つのコードでしか使っていなく、なぜぞれなのにインデックスを指定しているのだろうと思います。
どうしてなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/31 12:55
2017/07/31 14:38
2017/07/31 14:38