python窗体创建的lable无法显示

问题遇到的现象和发生背景

python窗体创建了lable但是无法显示,画布和按钮都正常

问题相关代码,请勿粘贴截图

class DrawWindow:
def init(self):
self.window = tk.Tk() # 初始化窗口
# 定义Button按钮
self.bt = tk.Button(self.window, text="打开文件", bg="yellow")
self.bt.pack()
# 定义画布
self.cv = tk.Canvas(self.window, width=1000, bg="red", height=800)
self.cv.pack(anchor="w")
# 定义label
self.lb = tk.Label(
self.window,
width=300,
height=800,
text="123",
bg="green",
font=("宋体", 20),
)
self.lb.pack(anchor="e")

if name == "main":
map = DrawWindow()
map.window.mainloop()

运行结果及报错内容

img

我的解答思路和尝试过的方法

新手入门不太懂

我想要达到的结果

想让lable展示在窗体右边

img

class DrawWindow:
    def __init__(self):
        self.window = tk.Tk()  # 初始化窗口
        # 定义Button按钮
        self.bt = tk.Button(self.window, text="打开文件", bg="yellow")
        self.bt.pack()
        # 定义画布
        self.cv = tk.Canvas(self.window, width=1000, bg="red", height=800)
        self.cv.pack(side='left', fill='both', expand=True)
        # 定义label
        self.lb = tk.Label(
            self.window,
            width=300,
            height=800,
            text="123",
            bg="green",
            font=("宋体", 20),
        )
        self.lb.pack(side='left', fill='both', expand=True)

使用side方式定义组件位置

img

不是太确定你要的效果,给个例子你参考一下:

import tkinter as tk
class DrawWindow:
    def __init__(self):
        self.window = tk.Tk() # 初始化窗口
        tk.Button(self.window, text="打开文件", bg="yellow").grid(row=1, column=1, sticky='W')
        tk.Canvas(self.window, width=300, bg="red", height=300).grid(row=2, column=1, sticky='W')
        tk.Label(self.window,width=30,height=10,text="123",bg="green",font=("宋体", 20),).grid(row=2, column=2, sticky='W')
if __name__ == "__main__":
    map = DrawWindow()
    map.window.mainloop()

img

label在canvas下面
pack()方法都是从上往下堆进去,不会并排显示。所以label在canvas下面靠右的位置,但是你窗口只有这么大,所以label被挤出去了。
建议用grid()或是place()布局