无法让 create_window 在 Canvas 上工作。 Tkinter Python 3.6
Can't get create_window to work on a Canvas. Tkinter Python 3.6
我制作了自己的小部件 'InventorySlot',我需要将自定义小部件中的小部件制作到 Canvas 上,而不是使用 'grid' 或 'pack' .
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
class Main:
def __init__(self):
self.root = Tk()
self.root.geometry('500x500')
self.test = InventorySlot(self.root)
self.test.grid()
class InventorySlot(tk.Frame):
def __init__(self,parent,*args,**kwargs):
tk.Frame.__init__(self,parent)
self.options = {}
self.options.update(kwargs)
self.slot = tk.Label(self,height=3,width=6,text='',relief=SUNKEN,bg='#8b8b8b',bd=4,padx=1,pady=0)
self.canvas = Canvas(self)
self.canvas.create_window(10,10,window=self.slot)
self.canvas.grid()
MainTk = Main()
MainTk.root.mainloop()
它显示的只是一片空白Canvas
您需要在 创建 canvas 之后创建标签 。创建顺序决定堆叠顺序(即:z-index)。 s 上面的标签,就在 canvas 的后面。
我制作了自己的小部件 'InventorySlot',我需要将自定义小部件中的小部件制作到 Canvas 上,而不是使用 'grid' 或 'pack' .
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
class Main:
def __init__(self):
self.root = Tk()
self.root.geometry('500x500')
self.test = InventorySlot(self.root)
self.test.grid()
class InventorySlot(tk.Frame):
def __init__(self,parent,*args,**kwargs):
tk.Frame.__init__(self,parent)
self.options = {}
self.options.update(kwargs)
self.slot = tk.Label(self,height=3,width=6,text='',relief=SUNKEN,bg='#8b8b8b',bd=4,padx=1,pady=0)
self.canvas = Canvas(self)
self.canvas.create_window(10,10,window=self.slot)
self.canvas.grid()
MainTk = Main()
MainTk.root.mainloop()
它显示的只是一片空白Canvas
您需要在 创建 canvas 之后创建标签 。创建顺序决定堆叠顺序(即:z-index)。 s 上面的标签,就在 canvas 的后面。