当前位置: 首页 > news >正文

武进网站建设哪家好单位公众网站建设要求

武进网站建设哪家好,单位公众网站建设要求,网站建设与管理试题与答案,网站建设的需求方案介绍 QVariant类类似于最常见的Qt数据类型的联合。由于C禁止联合类型包括具有非默认构造函数或析构函数的类型#xff0c;大多数有趣的Qt类不能在联合中使用。如果没有QVariant#xff0c;则QObject::property()和数据库操作等将会受到影响。 QVariant对象同时持有一个单一…介绍 QVariant类类似于最常见的Qt数据类型的联合。由于C禁止联合类型包括具有非默认构造函数或析构函数的类型大多数有趣的Qt类不能在联合中使用。如果没有QVariant则QObject::property()和数据库操作等将会受到影响。 QVariant对象同时持有一个单一类型T的单一值一些类型是多值的例如字符串列表。您可以通过convert()将其转换为不同的类型T使用其中一个toT()函数例如toSize()获取其值并使用canConvert()检查该类型是否可以转换为特定类型。 以toT()例如toInt()toString()命名的方法是const的。如果您请求存储的类型则它们返回存储对象的副本。如果要求使用存储的类型生成的类型则toT()会复制和转换并保留对象本身不变。如果要求一种无法从存储的类型生成的类型则结果取决于该类型有关详细信息请参见函数文档。 以下是一些示例代码演示了QVariant的用法 QDataStream out(...); QVariant v(123); // variant现在包含一个int int x v.toInt(); // x123 out v; // 在out中写入类型标记和一个int v QVariant(hello);// variant现在包含一个QByteArray v QVariant(tr(hello)); // variant现在包含一个QString int y v.toInt(); // y0因为v不能转换为int QString s v.toString(); // str(hello) 参见QObject::tr out v; // 在out中写入类型标记和一个QString ... QDataStream in(...); //打开先前编写的流 in v; //读取int变量 int z v.toInt(); // z123 qDebug(Type is %s,v.typeName()); // 打印“Type is int” v v.toInt()100; // variant现在拥有值223 v QVariant(QStringList());您甚至可以将QListQVariant和QMapQStringQVariant类型的值存储在variant中因此您可以轻松构建任意类型的任意复杂度的数据结构。这非常强大和灵活但可能比在标准数据结构中存储特定类型的方式低效。 QVariant还支持空值的概念在该概念下您可以拥有未设置值的定义类型。但是请注意只有在设置了值时QVariant类型才能进行强制转换。 QVariant x, y(QString()), z(QString());x.convert(QVariant::Int);// x.isNull() true// y.isNull() true, z.isNull() false QVariant可以扩展以支持Type枚举中未提到的其他类型。 关于GUI类型的说明 由于QVariant是Qt Core模块的一部分因此它无法向Qt GUI中定义的数据类型如QColor、QImage和QPixmap提供转换函数。换句话说没有toColor()函数。相反您可以使用QVariant::value()或qvariant_cast()模板函数。例如 QVariant variant; ... QColor color variant.valueQColor();所有由QVariant支持的数据类型包括与GUI相关的类型都支持反向转换例如从QColor到QVariant这是自动的。 QColor color palette().background().color(); QVariant variant color;连续使用canConvert()和convert() 当连续使用canConvert()和convert()时canConvert()可能会返回true但convert()会返回false。这通常是因为canConvert()仅报告了QVariant在给定适当数据的情况下转换类型的一般能力仍然可能提供实际上无法转换的数据。 例如当在包含字符串的variant上调用canConvert(Int)时它将返回true因为原则上QVariant能够将数字字符串转换为整数。然而如果字符串包含非数字字符则无法将其转换为整数任何尝试将其转换将失败。因此两个函数都返回true对于成功的转换来说是很重要的。 成员函数 QVariant:: QVariant() 构造一个无效的变量。QVariant:: QVariant(Type type) 构造一个空的类型为type的变量。QVariant:: QVariant(const QRegularExpression re) 构造一个新的变量带有正则表达式值re。该函数在Qt 5.0中引入。QVariant:: QVariant(const QUrl val) 构造一个新的变量值为val的url。QVariant:: QVariant(const QEasingCurve val) 构造一个新的带有easing curve值val的变量。该函数在Qt 4.7中引入。QVariant:: QVariant(const QUuid val) 构造一个值为uuid值val的新变量。该函数在Qt 5.0中引入。QVariant:: QVariant(const QModelIndex val) 构造一个新的带有QModelIndex值val的变量。该函数在Qt 5.0中引入。QVariant:: QVariant(const QPersistentModelIndex val) 构造一个新的带有QPersistentModelIndex值val的变量。该函数在Qt 5.5中引入。QVariant:: QVariant(const QJsonValue val) 构造一个新的带有json值val的变量。该函数在Qt 5.0中引入。QVariant:: QVariant(const QJsonObject val) 构造一个新的带有json对象值val的变量。该函数在Qt 5.0中引入。QVariant:: QVariant(const QJsonArray val) 构造一个新的带有json数组值val的变量。该函数在Qt 5.0中引入。QVariant:: QVariant(const QJsonDocument val) 构造一个新的带有json文档值val的变量。该函数在Qt 5.0中引入。QVariant:: QVariant(QVariant other) 移动构造一个QVariant实例使其指向other指向的同一对象。该函数在Qt 5.2中引入。QVariant:: QVariant(int typeId, const void *copy) 构造类型为typeId的变量并且如果copy不为0则初始化为copy。注意您必须传递要存储的变量的地址。通常情况下您不需要使用此构造函数而是使用. QVariant:: fromValue() 来从由QMetaType::VoidStar和QMetaType::QObjectStar表示的指针类型构造变量。另请参见. QVariant:: fromValue() 和QMetaType::Type。QVariant:: QVariant(const QVariant p) 构造一个变量的副本该变量作为此构造函数的参数传递。QVariant:: QVariant(QDataStream s) 从数据流s中读取变量。QVariant:: QVariant(int val) 构造一个带有整数值val的新变量。QVariant:: QVariant(uint val) 构造一个带有无符号整数值val的新变量。QVariant:: QVariant(qlonglong val) 构造一个带有长整型值val的新变量。QVariant:: QVariant(qulonglong val) 构造一个带有无符号长整型值val的新变量。QVariant:: QVariant(bool val) 构造一个带有布尔值val的新变量。QVariant:: QVariant(double val) 构造一个带有浮点值val的新变量。QVariant:: QVariant(float val) 构造一个带有浮点值val的新变量。该函数在Qt 4.6中引入。QVariant:: QVariant(const char *val) 构造一个带有val字符串值的新变量。该变量会将val创建为一个QString的深拷贝并假定输入val的编码为UTF-8。请注意val被转换为QString以便存储在变量中. QVariant:: userType() 将为该变量返回QMetaType::QString。可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用该操作符。QVariant:: QVariant(const QByteArray val) 构造具有bytearray值val的新变量。QVariant:: QVariant(const QBitArray val) 构造具有bitarray值val的新变量。QVariant:: QVariant(const QString val) 构造一个具有字符串值val的新变量。QVariant:: QVariant(QLatin1String val) 构造一个具有字符串值val的新变量。QVariant:: QVariant(const QStringList val) 构造一个具有字符串列表值val的新变量。QVariant:: QVariant(QChar c) 构造一个具有char值c的新变量。QVariant:: QVariant(const QDate val) 构造一个具有日期值val的新变量。QVariant:: QVariant(const QTime val) 构造一个具有时间值val的新变量。QVariant:: QVariant(const QDateTime val) 构造一个具有日期/时间值val的新变量。QVariant:: QVariant(const QListQVariant val) 构造一个具有列表值val的新变量。QVariant:: QVariant(const QMapQString, QVariant val) 构造一个具有QVariant映射val的新变量。QVariant:: QVariant(const QHashQString, QVariant val) 构造一个具有QVariant哈希val的新变量。QVariant:: QVariant(const QSize val) 构造一个具有值为val的大小值的新变量。QVariant:: QVariant(const QSizeF val) 构造一个具有值为val的大小值的新变量。QVariant:: QVariant(const QPoint val) 构造一个具有代表点值val的新变量。QVariant:: QVariant(const QPointF val) 构造一个具有代表点值val的新变量。QVariant:: QVariant(const QLine val) 构造一个具有表示线值val的新变量。QVariant:: QVariant(const QLineF val) 构造一个具有表示线值val的新变量。QVariant:: QVariant(const QRect val) 构造一个具有表示矩形值val的新变量。QVariant:: QVariant(const QRectF val) 构造一个具有表示矩形值val的新变量。QVariant:: QVariant(const QLocale l) 构造一个具有本地值l的新变量。QVariant:: QVariant(const QRegExp regExp) 构造一个新的正则表达式值regExp的变量。QVariant:: ~QVariant() 销毁QVariant和所包含的对象。 请注意重新实现清除的子类应重新实现析构函数以调用clear() 。这个析构函数调用clear() 但因为它是析构函数所以调用的是QVariant:: clear() 而不是子类的clear() 。bool QVariant::canConvert(int targetTypeId) const:如果变量的类型可以转换为请求的类型targetTypeId则返回true。在调用toInt()、toBool()等方法时会自动进行此类转换。 以下转换会自动完成 bool QVariant::canConvert(int targetTypeId) const 如果变量的类型可以转换为请求的类型targetTypeId则返回true。在调用toInt()、toBool()等方法时会自动进行此类转换。 以下转换会自动完成 如果QVariant包含指向QObject派生类型的指针则如果可以进行与targetTypeId所描述的类型相对应的qobject_cast则此函数也将返回true。请注意这仅适用于使用Q_OBJECT宏的QObject子类。 如果QVariant包含一个顺序容器则如果targetTypeId为QVariantList则该函数也将返回true。可以在不将其提取为复制的QVariantList的情况下迭代容器的内容。 QListint intList {7, 11, 42};QVariant variant QVariant::fromValue(intList);if (variant.canConvertQVariantList()) {QSequentialIterable iterable variant.valueQSequentialIterable();// Can use foreach:foreach (const QVariant v, iterable) {qDebug() v;}// Can use C11 range-for:for (const QVariant v : iterable) {qDebug() v;}// Can use iterators:QSequentialIterable::const_iterator it iterable.begin();const QSequentialIterable::const_iterator end iterable.end();for ( ; it ! end; it) {qDebug() *it;}}结果 这需要容器的value_type本身是一个元类型。类似地如果QVariant包含一个顺序容器则如果targetTypeId为QVariantHash或QVariantMap则该函数也将返回true。可以在不将其提取为复制的QVariantHash或QVariantMap的情况下迭代容器的内容 QHashint, QString mapping;mapping.insert(7, Seven);mapping.insert(11, Eleven);mapping.insert(42, Forty-two);QVariant variant QVariant::fromValue(mapping);if (variant.canConvertQVariantHash()) {QAssociativeIterable iterable variant.valueQAssociativeIterable();// Can use foreach over the values:foreach (const QVariant v, iterable) {qDebug() v;}// Can use C11 range-for over the values:for (const QVariant v : iterable) {qDebug() v;}// Can use iterators:QAssociativeIterable::const_iterator it iterable.begin();const QAssociativeIterable::const_iterator end iterable.end();for ( ; it ! end; it) {qDebug() *it; // The current valueqDebug() it.key();qDebug() it.value();}}结果
http://www.yutouwan.com/news/105960/

相关文章:

  • 做网页兼职网站有哪些通州北苑网站建设
  • 沧州网站建设 熊掌号中铁建设中南分公司
  • 美容行业网站建设中国商标网查询入口
  • 兰州网站关键词优化制作视频软件
  • 做网站 数据库政务信息系统网站建设规范
  • 网站建设 的销售图片东莞网站优化一般多少钱
  • 石家庄裕华区网站建设校园网站建设 必要性分析
  • 查建设公司年度保证金网站discuz论坛建站教程
  • 给公司做一个网站咸阳专业学校网站建设
  • 权重域名做网站有用么app小游戏开发公司
  • 网站开发 英文如何知道一个网站做的什么推广
  • asp.net网站开发书籍软件项目管理是做什么的
  • 精品网站建设价格wordpress绑定七牛
  • 莱州人社局网站建公司网站需要哪些资料
  • 网络app开发网站建设农家乐网站建设营销方案
  • 云主机建设网站广州seo建站
  • 外包公司 网站建设 深圳万州网站建设果园路
  • 巩义网站建设与制作郑州锐途网站建设
  • 哪里有网站模板下载中国文化网站建设方案
  • 环保空调东莞网站建设分析网站的外链
  • 网站建设的毕业设计成果深圳设计之都
  • 网络运营需要什么学历百度的关键词优化
  • 做h游戏视频网站有哪些设计论坛最好的网站
  • 下载织梦做网站软件邯郸网络运营处理中心
  • 济南网络免费推广网站学风建设专题网站
  • 织梦做的网站怎么样网页源代码模板
  • 江苏省城乡与建设厅网站首页深圳网站优化公司哪家好
  • 网站维护成本黑龙江恒泰建设集团网站
  • 建设网站怎么报价佛山网络营销推广
  • 建设网官方网站传奇手游网页