You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tkinter运行报TypeError:create()参数需为str或None而非App如何解决

报错根源

你写的tk.Tk().__init__(self, *args, **kwargs)存在两处核心逻辑错误:

  1. 你的App类继承自tk.Frame(框架控件类),但你错误调用了tk.Tk(主窗口类)的构造方法,还把App类的实例self作为参数传入tk.Tk的初始化方法,参数类型不匹配直接触发类型报错。
  2. 你先执行tk.Tk()直接实例化了一个无主的空白窗口,再调用它的__init__属于完全多余的错误写法,不符合tkinter的继承调用规范。

同时你的代码还存在其他衍生错误:

  • tk.Frame.title('Simulator')是直接调用类的实例方法,没有绑定具体对象,无法生效
  • self.geometry、self.resizable是主窗口tk.Tk才有的方法,tk.Frame没有这两个方法,运行会触发二次报错
  • 主入口处把App类名直接赋值给实例变量,覆盖了类定义
  • 调用了未定义的time_hours方法,没有导入对应依赖
修复方案
  1. 先创建tk.Tk主窗口实例,作为App框架的父容器
  2. 调用继承的父类tk.Frame的初始化方法,不要错误调用tk.Tk的初始化
  3. 所有窗口级别的配置(标题、尺寸、缩放限制)都绑定到主窗口对象
  4. 修正实例命名,删除未定义的方法调用,补充控件布局逻辑
完整可运行代码
import tkinter as tk
import tkinter.ttk as ttk

class App(tk.Frame):
    def __init__(self, master, *args, **kwargs):
        # 调用父类Frame的初始化方法
        super().__init__(master, *args, **kwargs)
        self.master = master
        
        container = tk.Frame(self)
        container.pack(side='top', fill="both", expand=True)

        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        # 主窗口配置绑定到master(也就是Tk实例)
        self.master.title('Simulator')
        self.master.geometry("800x800")
        self.master.resizable(False, False)

        self.label = ttk.Label(self, text='Sim', font=("Calibri",28,"bold"))
        self.label.pack()
        self.label0 = ttk.Label(self, font=("Calibri",24,"bold"), text='Monkey')
        self.label0.pack()
        self.label1 = ttk.Label(self, font=("Calibri",24,"bold"), text='Giraffe')
        self.label1.pack()
        self.label2 = ttk.Label(self, text="Flat border", font=("Calibri",24,"bold"), relief="flat")
        self.label2.pack()

if __name__ == '__main__':
    # 先创建主窗口
    root = tk.Tk()
    # 实例化Frame,传入主窗口作为master
    app = App(root)
    app.pack(fill="both", expand=True)
    root.mainloop()

内容的提问来源于stack exchange,提问作者user7437134

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:45:03