declaration in header file
QColor dialogBoja, dialogBoja1;
.cpp file
dialogBoja = postavke.value("boja", Qt::black).toString();
//postavke means settings
dialogBoja1 = postavke.value("boja1", Qt::white).toString();
As I said on title, when I try to compile this in Qt5 I get error: QVariant::QVariant(Qt::GlobalColor)' is private
How to solve this.
You need to explicitly create a QColor object. This should work:
dialogBoja = postavke.value("boja", QColor(Qt::black)).toString();
The reason for this is explained in the header:
// 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.
Looks like they wanted to divorce QVariant from the QtGui modules, like QColor, and removed that constructor in 5.0. Some syntax is explained here.
Because QVariant is part of the QtCore library, it cannot provide conversion functions to data types defined in QtGui, such as QColor, QImage, and QPixmap. In other words, there is no toColor() function. Instead, you can use the QVariant::value() or the qvariant_cast() template function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With