无法让create_window在Canvas上工作。 Tkinter Python 3.6

时间:2018-04-09 00:32:10

标签: python python-3.x user-interface tkinter tkinter-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()

它显示的是一个空白的画布

1 个答案:

答案 0 :(得分:0)

您需要在创建画布后创建标签。创建顺序决定堆叠顺序(即:z-index)。在那里的标签,它就在画布后面。