我一直在尝试制作一个计算器,在我的电磁学课程的 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
提交
取消