首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QVariant::QVariant(Qt::GlobalColor)‘是私有的

QVariant::QVariant(Qt::GlobalColor)‘是私有的
EN

Stack Overflow用户
提问于 2013-02-22 01:12:55
回答 2查看 5.4K关注 0票数 8

头文件中的声明

代码语言:javascript
复制
QColor dialogBoja, dialogBoja1;

.cpp文件

代码语言:javascript
复制
dialogBoja = postavke.value("boja", Qt::black).toString();
//postavke means settings
dialogBoja1 = postavke.value("boja1", Qt::white).toString();

正如我在标题中所说的,当我尝试用Qt5编译它时,我得到了错误: QVariant::QVariant(Qt::GlobalColor)‘是私有的

如何解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-22 01:19:49

您需要显式创建一个QColor对象。这应该是可行的:

代码语言:javascript
复制
dialogBoja = postavke.value("boja", QColor(Qt::black)).toString();

原因在header中解释:

代码语言:javascript
复制
// 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.
票数 14
EN

Stack Overflow用户

发布于 2013-02-22 01:23:24

看起来他们想要将QVariant从QtGui模块中分离出来,比如QColor,并在5.0中删除了该构造函数。here解释了一些语法。

因为QVariant是QtCore库的一部分,所以它不能提供到QtGui中定义的数据类型(如QColor、QImage和QPixmap )的转换函数。换句话说,没有toColor()函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15008297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档