0

QDateTimeEdit上書きすることで、15分間隔でステップを実行するように拡張しましたstepBy(int steps)。したがって、ユーザーが分のセクションを上にスクロールすると、選択肢は 0、15、30、および 45 のみになります。

ユーザーが手動で dateTime を入力すると、検証が行われないため、1 つの問題が発生します。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も見つけましたが、それが役立つかどうかはまだわかりません。

dateTimes0、15、30 、または 45 の分のセクションのみを許可する簡単な方法はありますか? または、代わりに手動入力を無効にすることはできますか?

4

1 に答える 1

0

入力が 15 で割り切れる場合は、dateTimeChanged スロットを使用して手動で制御できます。また、許可されている最も近い値のいずれかで要素を更新できます。

    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);
}
于 2014-10-25T08:51:41.127 に答える