Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Тортег от Январь 21, 2011, 20:37



Название: Показывать календарь подсказкой
Отправлено: Тортег от Январь 21, 2011, 20:37
Ну вообщем-то вот пример того, что я хотел бы реализовать: http://jqueryui.com/demos/datepicker/

Т.е. есть QLineEdit. Надо отображать календарь только когда кликаем по полю..

 ???


Название: Re: Показывать календарь подсказкой
Отправлено: dd от Январь 21, 2011, 20:42
Вопрос то в чем? Отображай.
Ловишь сигнал клика, создаешь виджет с календарем, смотришь геометрию едит-а и
перемещаешь календарь куда надо.


Название: Re: Показывать календарь подсказкой
Отправлено: Тортег от Январь 21, 2011, 20:44
Т.е. я просто не указываю родителя у календаря и он будет окном?


Название: Re: Показывать календарь подсказкой
Отправлено: dd от Январь 21, 2011, 20:47
Ну не обязательно. Можно календарь думаю как модальный диалог сделать как вариант.


Название: Re: Показывать календарь подсказкой
Отправлено: Тортег от Январь 21, 2011, 21:00
И закрывать после выбора даты. Неплохо! Спасибо, завтра попробую замутить :)


Название: Re: Показывать календарь подсказкой
Отправлено: Vitto74 от Январь 22, 2011, 08:35
Не только после выбора даты, но и после потери фокуса едит'ом
Модальное окно лучше не использовать т.к. пока его не закроешь с окном ничего сделать нельзя. Как вариант можно его закрыть, когда курсор выйдет за пределы календаря и едит'а


Название: Re: Показывать календарь подсказкой
Отправлено: dd от Январь 22, 2011, 10:33
>> Как вариант можно его закрыть, когда курсор выйдет за пределы календаря и едит'а

Если так, то тогда лучше закрывать по таймеру при выходе курсора. Иначе неудобно бкдет.


Название: Re: Показывать календарь подсказкой
Отправлено: Тортег от Январь 22, 2011, 17:55
Переопределил focusInEvent, но вот беда, когда закрываю окно с календарем оно опять вызывается. Походу после закрытия календаря фокус переносится опять на этот QLineEdit. :o


Название: Re: Показывать календарь подсказкой
Отправлено: merke от Январь 22, 2011, 21:26
Вот набросал примерчик, посмотри


Название: Re: Показывать календарь подсказкой
Отправлено: Тортег от Январь 23, 2011, 14:14
Вот набросал примерчик, посмотри
Чот не кошерно :)

Сделаю как тут, кнопочкой лучше:
http://docs.huihoo.com/qt/solutions/4/qtcalendarwidget/qtcalendarwidget-example-datepicker.html


Название: Re: Показывать календарь подсказкой
Отправлено: Vitto74 от Январь 23, 2011, 19:32
Если так, то тогда лучше закрывать по таймеру при выходе курсора. Иначе неудобно бкдет.
После выхода курсора за пределы календаря включать таймер на ~500мс и по таймеру проверить, находится ли курсор в окне. Если нет - закрыть. Но помни за эти 500мс может сработать несколько событий выхода за пределы области.


Название: Re: Показывать календарь подсказкой
Отправлено: lit-uriy от Январь 23, 2011, 22:15
>>Сделаю как тут, кнопочкой лучше:
Дак может тогда уж проще штатный виджет использовать (QDateEdit)?
Код
C++ (Qt)
dateEdit = new QDateEdit(Form);
dateEdit->setCalendarPopup(true);