Python 3.x 如何在tkinter的顶层创建按钮

Python 3.x 如何在tkinter的顶层创建按钮,python-3.x,button,tkinter,tkinter-canvas,toplevel,Python 3.x,Button,Tkinter,Tkinter Canvas,Toplevel,我试图在tkinter的顶层创建按钮时出错。我在用蟒蛇3 这是我自己的经验,我试图使smth像一个发明家检查。我没有太多的经验,所以我不知道该尝试什么 import tkinter as tk from tkinter import * import openpyxl def create_search_for_window(): top = Toplevel(root) canvas2 = tk.Canvas(top, width=800, height=600)

我试图在tkinter的顶层创建按钮时出错。我在用蟒蛇3

这是我自己的经验,我试图使smth像一个发明家检查。我没有太多的经验,所以我不知道该尝试什么

import tkinter as tk
from tkinter import *

import openpyxl


def create_search_for_window():
    top = Toplevel(root)
    canvas2 = tk.Canvas(top, width=800, height=600)
    canvas2.pack()

    Kodi = tk.Entry(top,font=('Helvetica', '20'))
    canvas2.create_window(400, 100,window=Kodi,height=100, width=200)
    kontrollo_per_kodin = tk.Button(text='Kontrollo', font=('Helvetica', 
'12'))
    canvas2.create_window(400, 200, window=kontrollo_per_kodin)


return None

book = openpyxl.load_workbook('Book1.xlsx')
sheet = book.active
columns = sheet.rows

root = Tk()


canvas1 = tk.Canvas(root, width=800, height=800)
canvas1.pack()
lab = tk.Label(root, text="aba")

kontrollo = tk.Button(text='Kontrollo', command=create_search_for_window, 
font=('Helvetica', '12'))
kontrollo.pack()
canvas1.create_window(100, 200, window=lab)
canvas1.create_window(120, 230, window=kontrollo)
root.mainloop()
我的预期结果是,在创建第二个画布之后,当我在第一个画布中按下“Kontrollo”按钮时,还会出现另一个按钮。 第二个按钮变量是上述代码中的“Kontrolo_per_kodin”

这就是我得到的错误:


_tkinter.TclError:无法使用。!按钮2在此画布的窗口项中

该按钮需要将画布或顶层作为其主控。您不能在一个窗口中创建小部件,然后将其移动到另一个窗口

kontrollo_per_kodin = tk.Button(canvas2, ...)