LINUX.ORG.RU

[Qt] ввод временного интервала через спинбокс

 


0

0

Здравствуйте.

У меня есть такая проблема: нужно запросить у пользователя временной интервал (продолжительностью от нескольких минут до нескольких суток) в виде (что-то вроде) 1d:03h:15m (само форматирование пока не принципиально).

Программа гуёвая, поэтому я предполагаю, что это нужно делать через специализированный виджет, вроде QDateTimeEdit, но не могу найти подходящего виджета. Сам QDateTimeEdit не подходит по той простой причине, что он категорически не приемлет ничего кроме даты.

Простой QLineEdit уже ближе, но тоже не очень, в нём можно задать, маску ввода, это хорошо, но к этой маске нужен валидатор и всё равно в конечном итоге всё придёт к тому, что придётся делать собственный spinbox, а это как-то не то, что хотелось.

Я рассматривал вариант, когда размер интервала задаётся в часах с минутами, без суток, в виде, например 27h:15m, и пытался приспособить QTimeEdit, но там больше 24-х часов задавать не получается.

Есть ли способ получить желаемое без реализации собственного spinboxa?

Заранее спасибо.

★★

сделай два спинбокса - с блекдже^W часами и минутами

Unnamed_Hero ★★★
()

1. сделай один qlineedit - и проверяй по qregexp
2. сделай 3 qlineedit`а (hh mm ss) - и всеравно проверяй
первый вариант еще хорош и тем, что проще в него выводить предыдущий выбранный интервал пользователя

x905 ★★★★★
()

Имхо, самый простой способ посоветовали в первом посте. А по-хорошему нужно наследовать QAbstractSpinBox, который QDateTimeEdit наследует.

driver8
()

Спасибо всем ответившим. На мой взгляд, самый простой в реализации способ не всегда лучший, во всяком случае, в плане usability. Но вы мне дали понять, что я действительно рассмотрел все варианты и теперь могу выбирать из них.

name_no ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.