Рисование на холсте Tkinter: нет атрибута «Создать» - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь нарисовать линию на холсте Tkinter по команде. Однако всякий раз, когда я запускаю программу, я получаю эту ошибку:

AttributeError: 'int' object has no attribute '_create'

Вот соответствующий код. Я включил только части, относящиеся к этой строке, поэтому она не завершена:

from tkinter import *
from tkinter import ttk, Canvas, BOTH


#Functions

def drawLineHandler():
    print("Draw Line")
    canvas.create_line(15, 25, 200, 25)

#Call Root Window

root = Tk()

#Declare Variables

canvas = Canvas

def __init__(self):
    super().__init__()   
    self.initUI()


def initUI(self): 
    self.pack(fill=BOTH, expand=1)

#Menu Code

menuBar = Menu(root)
root ["menu"] = menuBar

lineMenu=Menu(menuBar)


menuBar.add_cascade(label="Line Builder", menu=lineMenu)
lineMenu.add_command(label="Draw Line", command=drawLineHandler)

#Main Loop

root.mainloop()

1 Ответ

0 голосов
/ 27 марта 2019

Проблема здесь в том, что вашего объекта Canvas нет в окне, которое создает tkinter с вашей строкой root = Tk (). поэтому вам нужно добавить следующее

#you need the brackets here at the end of Canvas
canvas= Canvas()
canvas.pack()
...