Python与tkinter,按钮之间的线条绘制问题

时间:2017-04-28 16:09:09

标签: python tkinter tkinter-canvas

我正在学习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()函数。

问候

1 个答案:

答案 0 :(得分:0)

你需要使用画布实例而不是Canvas类来制作。为此,必须在Canvas初始化后移动它。

convas = Canvas(master)
convas.pack()

self.blackLine = convas.create_line(X1, Y1, X2, Y2)