Если я пытаюсь поместить холст в окно tkinter и ничего больше с этим кодом:
from tkinter import ttk
from tkinter import *
from tkinter.ttk import *
class Application(Frame):
def createWidgets(self):
self.can = Canvas(self.master, width=500, height=250)
self.can.grid(row=2, column=1)
self.can.create_line(0,0,500,200)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
окно никогда не создается.Я обнаружил, что добавление кнопки для создания холста работает:
from tkinter import ttk
from tkinter import *
from tkinter.ttk import *
class Application(Frame):
def makecanvas(self):
self.grid_forget()
self.can = Canvas(self.master, width=500, height=250)
self.can.grid(row=2, column=1)
self.can.create_line(0,0,500,200)
def createWidgets(self):
self.inst = Button(self)
self.inst["text"] = "GO!"
self.inst["command"] = self.makecanvas
self.inst.grid(row=3, column=1, pady=15, sticky=N)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
Кроме того, если я закомментирую функцию создания холста, кнопка, которую я удалил с помощью self.grid_forget (), не исчезнет.Есть ли лучший способ сделать это?