Q_PROPERTY типа float в пользовательском виджете не отображается в редакторе свойств

Я работаю над пользовательским виджетом и хотел создать некоторые свойства типа float. К сожалению, не похоже, что Qt Creator является поклонником этих свойств типа float и не показывает их в редакторе свойств. Все мои другие свойства работают нормально (int, bool, QString). Вот пример того, как я объявляю свойства.

В заголовочном файле:

Q_PROPERTY( float Value
            READ getValue
            WRITE setValue
            RESET resetValue )
float Value;

// ...

float getValue();
void resetValue();
void setValue( float value );

И в исходном файле:

float MyWidget::getValue()
{
    return Value;
}
void MyWidget::resetValue()
{
    Value = 0;
}
void MyWidget::setValue( float value )
{
    Value = value;
}

Есть ли что-то особенное, что нужно сделать, прежде чем плавающие числа можно будет использовать для свойств виджета?


person MildWolfie    schedule 17.12.2014    source источник
comment
@thuga Только что попробовал дважды, и это, кажется, работает. Я не пробовал это раньше, так как видел в другом месте поток, жалующийся на ту же проблему как с плавающей запятой, так и с двойным, поэтому я просто предположил, что это не сработает. Не стесняйтесь сделать свой краткий комментарий ответом.   -  person MildWolfie    schedule 18.12.2014


Ответы (1)


double должен работать, например, QWidget::windowOpacity — тип double и отображается в редакторе свойств. Я не уверен, почему float не работает, но обычно, когда некоторые свойства не отображаются в редакторе свойств, это происходит потому, что он не знает, какой редактор использовать.

person thuga    schedule 19.12.2014
comment
Я просто собираюсь добавить, что давно имеет ту же проблему. Только int поддерживается для свойств, которые будут отображаться в редакторе форм. Мне это кажется действительно странным. - person MildWolfie; 11.10.2016