我一直在嘗試制作一個計算器,在我的電磁學課程的 Jupyter Notebook 上使用 Tkinter 查找給定 3 維向量的大小。我得到了以下代碼,該代碼可以工作,但它為每個輸入坐標提供 3 個條目小部件,并且輸入的數字僅出現在與 z 坐標相對應的最后一個小部件中。代碼:from tkinter import *root = Tk()root.title("Calculator")coordinates = []n=0X = Entry(root)X.insert(END, "Enter the x-coordinate")X.grid(row=0, column=0, columnspan=3, padx=12, pady=15)Y = Entry(root)Y.insert(END, "Enter the y-coordinate")Y.grid(row=1, column=0, columnspan=3, padx=12, pady=15)Z = Entry(root)Z.insert(END, "Enter the z-coordinate")Z.grid(row=2, column=0, columnspan=3, padx=12, pady=15)def x(): global n n=1 def y(): global n n=2 def z(): global n n=3 def S(m): if n == 1: a = X.get() X.delete(0,END) X.insert(0,str(a)+str(m)) coordinates.append(X) if n == 2: b = Y.get() Y.delete(0,END) Y.insert(0,str(b)+str(m)) coordinates.append(Y) if n == 3: c = Z.get() Z.delete(0,END) Z.insert(0,str(c)+str(m)) coordinates.append(Z) def clear(): X.delete(0,END) Y.delete(0,END) Z.delete(0,END) def equal(): sq = 0 for d in coordinates: e = float(d.get()) sq = sq + e**2 mag = sq**0.5 val = Label(root, text="The magnitude of the vector is: " + str(mag)) val.grid(row=3, column=0, columnspan=3, padx=12, pady=15) 無論我使用按鈕 x、y 還是 z,只有第三個條目小部件接受輸入。我該如何解決這個問題?
1 回答

慕碼人8056858
TA貢獻1803條經驗 獲得超6個贊
您不應該直接使用command
按鈕“調用”該函數,而是說:
bx = Button(root, text="x", padx=30, pady=15, command=x) by = Button(root, text="y", padx=30, pady=15, command=y) bz = Button(root, text="z", padx=30, pady=15, command=z)
當您使用時,()
您正在調用該函數,因此要擺脫它,請刪除()
,因此僅當您按下按鈕時才會調用(調用)該函數。
添加回答
舉報
0/150
提交
取消