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()
新手入门不太懂
想让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(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方式定义组件位置
不是太确定你要的效果,给个例子你参考一下:
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()
label在canvas下面
pack()方法都是从上往下堆进去,不会并排显示。所以label在canvas下面靠右的位置,但是你窗口只有这么大,所以label被挤出去了。
建议用grid()或是place()布局