如何将dateTimeFromText更改为仅允许分钟%15或禁用手动文本输入



我已经扩展了QDateTimeEdit,通过覆盖stepBy(int steps)来每隔15分钟执行一步。因此,如果用户向上滚动分钟部分,他们只能选择0、15、30和45。

如果用户手动输入dateTime,就会出现一个问题,因为这样就不会进行验证。我仔细看了一下:https://qt.gitorious.org/qt/qt/source/57756e72adf2081137b97f0e689dd16c770d10b1:src/gui/widgets/qdatetimeedit.cpp
但老实说,dateTimeFromText方法有点让人不知所措。

我还发现:http://qt-project.org/doc/qt-5/qt.html#InputMethodHint-enum,但仍然不确定这是否有任何帮助。

有没有什么简单的方法可以只允许dateTimes的分钟数为0、15、30或45?或者我可以禁用手动输入吗?

您可以使用dateTimeChanged插槽手动控制输入是否可以被15整除。此外,您还可以使用最接近的允许值之一更新元素。

    if (dateTime.time().minute()%15 != 0) {
    QTime t(dateTime.time().hour(),dateTime.time().minute()-dateTime.time().minute()%15,dateTime.time().second());
    ui->dateTimeEdit->setTime(t);
}

相关内容

  • 没有找到相关文章

最新更新