我正在学习Python并开始使用ktinter。我现在的目标是创建一个拖放功能,创建按钮并用线连接它们。
这是我到目前为止所做的:
from tkinter import *
class Test:
def __init__(self, master):
X1 = int(input())
Y1 = int(input())
X2 = int(input())
Y2 = int(input())
self.blackLine = Canvas.create_line(X1, Y1, X2, Y2)
convas = Canvas(master)
convas.pack()
button1 = Button(text = "button 1")
button1.configure(width = 0, activebackground = "#D2D2D2", relief = GROOVE)
button1_window = convas.create_window(X1, Y1, anchor=NW, window=button1)
button1.update()
print (button1.winfo_geometry())
button2 = Button(text = "button 2")
button2.configure(width = 0, activebackground = "#D2D2D2", relief = GROOVE)
button2_window = convas.create_window(X2, Y2, anchor=NW, window=button2)
button2.update()
print (button2.winfo_geometry())
现在您可能已经看到我正在测试线条图,方法是在开头的输入中输入一些值,然后在按钮放置在画布上的按钮位置的1,21窗口坐标中使用它们。现在,当我启动程序时,我的问题出现了。
一旦我输入了4个数字,如4个,4个,10个,10个,它就会给我一个AttribuiteError这样说:
“AttributeError:'int'对象没有属性'_create'”
我不确定,但我猜它以某种方式将数字用作字符串,因此我尝试使用int(输入)而不是普通的input()函数。
问候
答案 0 :(得分:0)
你需要使用画布实例而不是Canvas类来制作。为此,必须在Canvas初始化后移动它。
convas = Canvas(master)
convas.pack()
self.blackLine = convas.create_line(X1, Y1, X2, Y2)