【问题标题】:Sorting by date in QTreeWidget在 QTreeWidget 中按日期排序
【发布时间】:2012-10-25 19:17:43
【问题描述】:

我有一个 3 列的 QTreeWidget。它用于搜索功能,树持有​​

  1. 结果名称
  2. 结果日期
  3. $searchterm 结果中的命中数。

默认行为是按日期降序排序。这最初工作得很好,因为这是通过 SQL 查询完成的,然后才加载到树中。然而,当我决定允许用户按其他列而不是日期排序时,事情就搞砸了。

日期采用 mm/dd/yyyy 格式,但 QTreeWidget 忽略年份,同时按月和日排序。它似乎想将日期视为整数。月份和日期排序正确,但年份在不应该的情况下混合在一起。 (10/06/2012、10/06/2011、10/05/2012 等)有没有办法告诉 QTreeWidget 排序功能将年份放在首位(以便 2012 年的所有内容都组合在一起,所有内容从 2011 年开始被组合在一起,等等),甚至告诉它在该列中使用日期格式?

【问题讨论】:

    标签: qt


    【解决方案1】:

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

    【讨论】:

    • 所以如果我将日期添加到每个 QTreeWidgetItem 作为 QDate 而不是字符串,它应该可以正常工作?
    • 我使用 QDate::FromString 将字符串转换为 Qdate 并且它可以工作......有点。日期格式仍然损坏(日期显示为 m/d/yy,即使我使用的 QDate::DateFormat 是“MMddyyyy”。我不知道为什么......根据应该工作的 Qt 文档.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多