具有三个输入长度的 Tkinter 绘制三角形
Posted
技术标签:
【中文标题】具有三个输入长度的 Tkinter 绘制三角形【英文标题】:Tkinter drawing triangle with three input length 【发布时间】:2022-01-07 18:30:45 【问题描述】:我想按输入长度绘制三角形。所以我做了三个条目,我可以输入数据。但它说 “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()
【问题讨论】:
【参考方案1】:buttonclick1
函数有 3 个未传递给它的参数(a、b、c),但是当我阅读您的代码时,不需要这些参数,因此您可以将 buttonclick1(a, b, c)
更改为 buttonclick1()
第 8 行,它将正常工作。
【讨论】:
以上是关于具有三个输入长度的 Tkinter 绘制三角形的主要内容,如果未能解决你的问题,请参考以下文章