在QTreeWidget中按日期排序

在QTreeWidget中按日期排序,qt,Qt,我有一个有3列的QTreeWidget。它用于搜索函数中,树保持不变 结果名称 结果日期 $searchterm结果中的点击数 默认行为是按日期降序排序。这最初工作得很好,因为这是通过SQL查询完成的,之后才加载到树中。然而,当我决定允许用户按其他列排序而不仅仅是按日期排序时,情况就不一样了 日期是mm/dd/yyyy格式的,但QTreeWidget在排序时会忽略年份,以月份和日期为准。它似乎想把日期当作整数。月份和日期的排序正确,但年份是混合在一起的,而不应该这样。(2012年6月10日、20

我有一个有3列的QTreeWidget。它用于搜索函数中,树保持不变

  • 结果名称
  • 结果日期
  • $searchterm结果中的点击数 默认行为是按日期降序排序。这最初工作得很好,因为这是通过SQL查询完成的,之后才加载到树中。然而,当我决定允许用户按其他列排序而不仅仅是按日期排序时,情况就不一样了


    日期是mm/dd/yyyy格式的,但QTreeWidget在排序时会忽略年份,以月份和日期为准。它似乎想把日期当作整数。月份和日期的排序正确,但年份是混合在一起的,而不应该这样。(2012年6月10日、2011年6月10日、2012年5月10日等)我是否可以告诉QTreeWidget排序函数将年份作为最高优先级(以便将2012年的所有内容分组在一起,将2011年的所有内容分组在一起,等等),或者甚至告诉它在该列中使用日期格式

    它不是按整数排序,而是按字符串排序。用于树视图的模型需要为函数中的列返回
    QDate
    QDateTime

    因此,如果我将日期作为QDate而不是字符串添加到每个QTreeWidgetItem,它应该可以正常工作?我使用QDate::FromString将字符串转换为QDate,并且它可以工作……某种程度上。日期格式仍然被破坏(日期显示为m/d/yy,即使我使用的QDate::DateFormat是“mmddyyy”。我不明白为什么…根据Qt文档,它应该可以工作。