Название: Написать виджет CheckBox + QDateEdit Отправлено: pokidoff от Июнь 30, 2011, 14:36 Необходимо написать виджет, унаследованный от QDateEdit с нарисованным чекбоксом. Это нужно для использования совместно с БД: если поле NULL - галку снимаем, dateEdit->setEnabled(false), ну и наоборот. Начнем с того, как нарисовать чекбокс?
Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: Пантер от Июнь 30, 2011, 14:40 В Qxt глянь. Кажись, там было.
Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: pokidoff от Июнь 30, 2011, 14:57 К сожалению там нет. Хотя библиотека шикарная... Вопрос остался
Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: SimpleSunny от Июнь 30, 2011, 17:21 Когда-то давно делал так.
Писал свой виджет, в нем размещал рядом стд. чекбокс без текста и стд. датаедит. И функции необходимые от них выносил наружу. Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: pokidoff от Июнь 30, 2011, 21:14 Да, я так сейчас и сделал - положил на виджет чекбокс и редактор даты. Фактически заменил тип данных, обрабатываемый виджетом, с QDate на QVariant ибо этот тип поддерживает NULL. Вроде пока устраивает. С маппером работает нормально.
Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: LisandreL от Июль 01, 2011, 07:09 Фактически заменил тип данных, обрабатываемый виджетом, с QDate на QVariant ибо этот тип поддерживает NULL. Вы так говорите, как будто QDate NULL не поддерживает: QDate::isNull().Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: pokidoff от Июль 01, 2011, 07:43 Ну да, оказалось, что поддерживает. Только... чтобы установить дату в NULL мне надо установить дату раньше 2 января 4713 г до нашей эры.
Цитировать bool QDate::setDate ( int year, int month, int day ) , а с QVariant можно сделать так:Sets the date's year, month, and day. Returns true if the date is valid; otherwise returns false. If the specified date is invalid, the QDate object is set to be invalid. Any date before 2 January 4713 B.C. is considered invalid. This function was introduced in Qt 4.2. Код
Тем более, что при работе с базой мне и нужен Qvariant Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: Пантер от Июль 01, 2011, 09:03 Ну да, оказалось, что поддерживает. Только... чтобы установить дату в NULL мне надо установить дату раньше 2 января 4713 г до нашей эры. Нафига? QDate () изначально есть NULL.Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: pokidoff от Июль 01, 2011, 16:23 Ну да, оказалось, что поддерживает. Только... чтобы установить дату в NULL мне надо установить дату раньше 2 января 4713 г до нашей эры. Нафига? QDate () изначально есть NULL.Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: Пантер от Июль 01, 2011, 16:26 Код
Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: kolob от Октябрь 27, 2011, 09:04 Попробовал реализовать такой виджет, наследую QDateEdit вставляю туда QCheckBox, но внутренние элементы не смещаются. CheckBox на месте дня недели находится.
(http://xmages.net/storage/10/1/0/3/5/upload/7d6d12ed.png) (http://xmages.net/i/3177670) Название: Re: Написать виджет CheckBox + QDateEdit Отправлено: kolob от Ноябрь 29, 2011, 23:33 Разместил CheckBox в лайауте. Добалвил для текста отступ. Теперь смотрится нормально. Дата сместилась вправо. При изменении размеров тоже ведет себя нормально. Только вот теперь когда наводишь мишью на дату, курсор не меняется(курсор для редактирования). Я думаю дело в лайауте, который растянулся на весь виджет.
|