crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Свойства в общем и свойства QDateTimeEdit в частности
S@D}{U
  опции профиля:
сообщение 15.8.2009, 23:53
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 15.8.2009
Пользователь №: 1003

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго всем времени суток.

У меня возникла следующая проблема:
необходимо реализовать возможность отображение в виджете QDateEdit нулевой даты ,
т.е той для которой верно QDate().isNull();

Первым и естественным на мой взгляд решением было создать потомка который будет переопределять функции QString textFromDateTime
( const QDateTime & dateTime ) const;
и void setDate(const QDate & date);


В textFromDateTime добавить проверку даты на нулевое значение и при положительной проверке возвращать заданный текст заместо вызова конвертирования значения даты в текст определенного в потомке.
В setDate так же сделать проверку на нулевое значение и при положительном результате изменять свойство обьекта напрямую без каких либо проверок.Так как определенная по умолчанию функция
делает проверку на нулевое значение и если проверка положительна устанавливает дату в значение свойства minimumDate.

Но тут и начались сложности.
Например код :
qDebug()<<"DATE VALUE"<<endl<<date;
qDebug()<<"DATE PROP"<<endl<<property("date");
qDebug()<<"DATE SET"<<endl<<setProperty("date",date);
qDebug()<<"DATE PROP"<<endl<<property("date");


приводит к довольно любопытному выводу :
DATE VALUE
QDate("")
DATE PROP
QVariant(QDate, QDate("Сб янв 1 2000") )
DATE SET
true
DATE PROP
QVariant(QDate, QDate("Сб янв 1 2000") )

Т.е данные устанавливаются , но судя по всему устанавливаются слотом который определен в базовом классе, а не напрямую меняется значение указанного свойства.

Если кто нибудь знает как можно переключить функцию изменяющую свойство обьекта на другую
или хотя бы как решить данную задачу другим способом просьба поделиться ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.12.2024, 0:24