无法从tkinter导入Font、anchor等组件,求助解决方案
解决tkinter中Font、anchor相关导入及使用错误
代码中的核心问题及修正:
ttk.Button的font参数使用错误
原代码未给font参数加关键字标识,且格式不符合要求。可以直接用元组格式('Arial',21),或者通过font.Font类创建字体对象,两种方式都需要明确指定font=关键字。Frame组件赋值错误
place()方法返回None,直接链式调用会导致f变量指向None,后续Canvas无法以此作为父组件。需拆分创建与布局步骤。Canvas的create_image参数缺失
create_image必须传入image参数才能正常运行,同时锚点可以直接使用字符串"nw"替代tkinter.NW,无需额外导入。
修正后的完整代码:
from tkinter import* from tkinter import font from tkinter import ttk import tkinter win = Tk() win.geometry("300x550+970+45") win.title("Gui") # 标签创建与布局拆分,避免变量指向None l = Label(text="Save File") l.pack() # 修正ttk.Button的font参数 btn = ttk.Button(text="Save", font=('Arial', 21)) # 或者用font.Font的方式: # btn_font = font.Font(family='Arial', size=21) # btn = ttk.Button(text="Save", font=btn_font) btn.pack(pady=10) # 拆分Frame的创建与布局,确保f指向Frame对象 f = ttk.Frame(win, width=200, height=200) f.place(x=50, y=275) # Canvas以f为父组件,修正create_image参数 f_canvas = Canvas(f, background='red', width=200, height=200) # 示例:加载图片(需替换为你的图片路径) # img = tkinter.PhotoImage(file="your_image.png") # f_canvas.create_image(0, 0, anchor="nw", image=img) f_canvas.place(x=0, y=0) win.mainloop()
内容的提问来源于stack exchange,提问作者Omar Attia
相关产品推荐
相关产品推荐

