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

Tkinter文本框保存数据报错:TypeError参数数量不符问题求助

问题解决:Tkinter记事本SQLite保存错误

错误原因

TypeError: function takes at most 2 arguments (3 given) 是因为cursor.execute()方法要求第二个参数是单个序列(元组/列表),而你直接传入了两个独立的参数,导致方法接收到了3个参数(SQL语句、标题内容、笔记内容)。

修复方案

修改save方法中的execute调用,将两个参数打包成元组,同时新增表存在性检查避免首次运行报错:

def save(self):
    db = sql.connect('notas.db')
    curs = db.cursor()
    # 首次运行自动创建表
    curs.execute("CREATE TABLE IF NOT EXISTS tb_notes (name TEXT, text TEXT)")
    # 将参数打包成元组传递给execute
    curs.execute("INSERT INTO tb_notes(name, text) VALUES(?, ?)", 
                (self.title.get(), self.note.get("1.0",'end-1c')))
    db.commit()
    db.close()
    # 可选:保存后关闭新建笔记窗口
    self.wind.destroy()

额外优化建议

  • 新建窗口改用tk.Toplevel()替代tk.Tk(),避免创建多个Tk主实例:
    new_bt= tk.Button(text= 'New', width= 8, height= 2, bg= '#B0B0B0', command= lambda: new_note(tk.Toplevel(obj_m_window.wind)))
    
  • 给按钮添加白色文本提升深色背景下的可读性:fg='white'
  • 保存成功后添加提示弹窗:
    from tkinter import messagebox
    # 在db.close()后添加
    messagebox.showinfo("提示", "笔记已保存")
    

内容的提问来源于stack exchange,提问作者Kumar López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:03:25