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

如何将DateEntry组件选中日期插入MySQL数据库?遇get属性报错求解

解决DateEntry调用get()报错“没有get属性”的问题
  • 核心问题:变量名不匹配
    你的代码中创建DateEntry用的是t1 = DateEntry(self.root),但布局却执行cal.pack(),变量名完全不一致。要么是你把DateEntry的实例名写错成了cal,要么是t1根本没被正确布局/初始化,导致调用t1.get()时,t1并非有效的DateEntry实例。

  • 修复步骤

    1. 统一变量名:确保创建实例、布局、调用方法用同一个变量名。比如:

      # 创建实例
      cal = DateEntry(self.root)
      # 布局
      cal.pack()
      # 获取日期
      selected_date = cal.get()
      

      或者:

      t1 = DateEntry(self.root)
      t1.pack()
      selected_date = t1.get()
      
    2. 确认使用tkcalendar库的DateEntry:标准tkinter没有内置DateEntry组件,必须使用tkcalendar库的实现:

      • 先安装库:pip install tkcalendar
      • 正确导入:from tkcalendar import DateEntry
        其他第三方库的DateEntry可能方法名不同(比如部分库用get_date()),优先用tkcalendar的实现,它的get()方法是标准用法。
    3. 排查其他问题:

      • 检查是否误导入了其他同名的DateEntry类
      • 尝试更新tkcalendar到最新版本:pip install --upgrade tkcalendar
  • 正确示例代码

from tkcalendar import DateEntry
import tkinter as tk

def insert_to_db(date_str):
    # 这里写你的数据库插入逻辑
    print(f"插入日期:{date_str}")

root = tk.Tk()
# 创建并布局DateEntry
cal = DateEntry(root)
cal.pack()

# 绑定获取日期并插入数据库的按钮
tk.Button(root, text="提交日期", command=lambda: insert_to_db(cal.get())).pack()

root.mainloop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:23:20