如何在 tkinter 的 Toplevel 中创建按钮
How to create a button in the Toplevel in tkinter
我在尝试在 tkinter 的 Toplevel 上创建按钮时遇到错误。我正在使用 python3.
这是我自己的经验,我试图让 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()
我的预期结果是,当我在创建第二个 canvas 后按下第一个 canvas 中的 "Kontrollo" 按钮时,还会有另一个按钮。
第二个按钮变量就是上面代码中的"kontrollo_per_kodin"
这是我遇到的错误:
_tkinter.TclError: 无法在此 canvas
的 window 项中使用 .!button2
按钮需要有 canvas 或顶层作为它的主人。您不能在一个 window 中创建小部件,然后将其移动到另一个。
kontrollo_per_kodin = tk.Button(canvas2, ...)
我在尝试在 tkinter 的 Toplevel 上创建按钮时遇到错误。我正在使用 python3.
这是我自己的经验,我试图让 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()
我的预期结果是,当我在创建第二个 canvas 后按下第一个 canvas 中的 "Kontrollo" 按钮时,还会有另一个按钮。 第二个按钮变量就是上面代码中的"kontrollo_per_kodin"
这是我遇到的错误:
_tkinter.TclError: 无法在此 canvas
的 window 项中使用 .!button2按钮需要有 canvas 或顶层作为它的主人。您不能在一个 window 中创建小部件,然后将其移动到另一个。
kontrollo_per_kodin = tk.Button(canvas2, ...)