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

如何修改PyQt5 QCalendarWidget选中日期的显示格式?

解决QCalendarWidget日期格式问题

嘿,这个问题很好解决!你现在得到的是系统默认的日期字符串格式,因为调用toString()时没有指定自定义格式规则。只需要给toString()方法传入指定的格式参数,就能得到你想要的YYYY-MM-DD样式了。

修改思路

Qt的QDate.toString()支持传入格式字符串来定义输出样式,我们需要用到的格式是"yyyy-MM-dd":

  • yyyy:代表4位完整年份(比如2018)
  • MM:代表两位月份(不足两位时自动补0,比如05)
  • dd:代表两位日期(不足两位时自动补0,比如09)

修改后的代码

把你activate_script方法里获取日期的部分替换成下面的代码即可:

def activate_script(self):
    # 这里移除了全局变量,按你实际代码情况调整
    start_date = self.ui.calendarWidget_start_date_2.selectedDate().toString("yyyy-MM-dd")
    end_date = self.ui.calendarWidget_end_date_2.selectedDate().toString("yyyy-MM-dd")
    # 打印到textBrowser
    text = "Start date: %s \n End date: %s \n" %(start_date, end_date)
    self.ui.textBrowser.setText(text)
    # 后续的当前日期赋值按需保留或删除
    start_date = QtCore.QDate.currentDate()
    end_date = QtCore.QDate.currentDate()

修改后运行,textBrowser里就会输出你期望的格式:

Start date: 2018-05-09
End date: 2018-05-15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:15:36