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") )

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

Если кто нибудь знает как можно переключить функцию изменяющую свойство обьекта на другую
или хотя бы как решить данную задачу другим способом просьба поделиться ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 16.8.2009, 0:35
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


S@D}{U,
Цитата(S@D}{U @ 16.8.2009, 0:53) *
Если кто нибудь знает как можно переключить функцию изменяющую свойство обьекта на другую


может в классе наследнике в макросе Q_PROPERTY написать нужную функцию. или создать новое свойство?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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