QVariant::QVariant(Qt::GlobalColor)' является закрытым

объявление в заголовочном файле

QColor dialogBoja, dialogBoja1;

.cpp-файл

dialogBoja = postavke.value("boja", Qt::black).toString();
//postavke means settings
dialogBoja1 = postavke.value("boja1", Qt::white).toString();

Как я уже сказал в заголовке, когда я пытаюсь скомпилировать это в Qt5, я получаю сообщение об ошибке: QVariant::QVariant(Qt::GlobalColor)' is private

Как это решить.


person Alen    schedule 21.02.2013    source источник


Ответы (2)


Вам нужно явно создать объект QColor. Это должно работать:

dialogBoja = postavke.value("boja", QColor(Qt::black)).toString();

Причина этого описана в шапке:

// These constructors don't create QVariants of the type associcated
// with the enum, as expected, but they would create a QVariant of
// type int with the value of the enum value.
// Use QVariant v = QColor(Qt::red) instead of QVariant v = Qt::red for
// example.
person Dan Milburn    schedule 21.02.2013