0

我想按输入长度绘制三角形。所以我做了三个条目,我可以输入数据。但它说“TypeError:buttonclick1() 缺少 3 个必需的位置参数:'a'、'b' 和 'c'”你能帮帮我吗?

我想通过 tkinter 画布的三个输入长度制作一个三角形。请帮我!!

from tkinter import*


root=Tk()
root.title("도형 그리기")


def buttonclick1(a, b, c):
    a=ent_a.get()
    a=int(a)
    b=ent_b.get()
    b=int(b)
    c=ent_c.get()
    c=int(c)
    A = (0, 0)
    B = (c, 0)
    hc = (2 * (a**2*b**2 + b**2*c**2 + c**2*a**2) - (a**4 + b**4 + c**4))**0.5 / (2.*c)
    dx = (b**2 - hc**2)**0.5
    if abs((c - dx)**2 + hc**2 - a**2) > 0.01: dx = -dx
    C = (dx, hc)

    coords = [int((x + 1) * 75) for x in A+B+C]

    cv.create_polygon(*coords)
    
               

lb1=Label(root, text="1.삼각형 그리기")
lb2=Label(root, text="삼각형 세 변의 길이를 입력하세요")


ent_a=Entry(root, width=20)
ent_b=Entry(root, width=20)
ent_c=Entry(root, width=20)

bt1=Button(root, text="삼각형 그리기", command=buttonclick1)

cv=Canvas(root, width=500, height=500, bg="white")

lb1.grid(row=0, column=0)
lb2.grid(row=1, column=0, columnspan=3)
ent_a.grid(row=2, column=0)
ent_b.grid(row=2, column=1)
ent_c.grid(row=2, column=2)
bt1.grid(row=3, column=0, columnspan=3)


cv.grid(row=12, column=0, columnspan=3)

root.mainloop()
4

1 回答 1

0

buttonclick1函数有 3 个未传递给它的参数(a,b,c),但是当我阅读您的代码时,不需要这些参数,因此您可以更改buttonclick1(a, b, c)buttonclick1()第 8 行,它可以正常工作而不会出现任何错误。

于 2021-12-01T05:45:15.483 回答