import tkinter as tk
from tkinter import ttk
def draw_mine_field(x=5, y=3):
mine_frame = tk.Toplevel(root)
mine_frame.grid()
root.withdraw()
for a in range(x):
for b in range(y):
ttk.Button(mine_frame, text='*', width=3).grid(column=a, row=b)
root = tk.Tk()
root.title("MS")
startframe = ttk.Frame(root)
ttk.Label(root,text="y").grid(row=1,column=1)
y_entry_box = ttk.Entry(root).grid(row=1,column=2)
ttk.Label(root,text="x").grid(row=1,column=3)
x_entry_box = ttk.Entry(root).grid(row=1,column=4)
ttk.Button(root,text="Start",command=draw_mine_field).grid(row=2,column=1)
ttk.Button(root,text="Quit",command=root.destroy).grid(row=2,column=2)
root.mainloop()
この特定の例では、より簡単な方法があります。基本的に、私が知りたいのは、command=draw_mine_field
にfucntionリファレンスを渡すときです。機能を実行しないで(x, y)
をどうやって渡すのですか?一般的にどのように機能しますか?関数参照を渡すときにargsを渡す
xとyはどこから来ていますか? –
関数を実行せずに値を渡すことはできません。この設計でできることは、いくつかのグローバル変数を設定し、その関数が引数ではなく関数を使用するようにしていますが、それは正確に高級なデザインではありません。通常、GUIでは入力ウィジェット(テキストボックスまたはスピンボックス)にxとyの値を入力し、それらから読み込み関数を読み込みます。 –