QVariant及其应用

基本用法

内置支持所有QMetaType::Type里的类型如:int,QString,QFont等甚至QList直接赋值:

    QVariant tmp=QString(u8"测试");
     qDebug() <<tmp.toString();

自定义类型

先注册:

struct MyClass
{
	QString name;
	int age;
}
Q_DECLARE_METATYPE(MyClass)

后使用:

MyClass myClass;
QVariant v3 = QVairant::fromValue(myClass);

if (v2.canConvert<MyClass>()){
	MyClass myClass2 = v2.value<MyClass>();
}

在ComboBox的item中存储用户定义数据

QComboBox::addItem(const QIcon &aicon, const QString &atext, const QVariant &auserData)

void Widget::on_btnIni_clicked()
{
    QMap<QString, int> City_Zone;
    City_Zone.insert(u8"北京",10);
    City_Zone.insert(u8"上海",21);
    City_Zone.insert(u8"天津",22);
    City_Zone.insert(u8"大连",411);
    City_Zone.insert(u8"锦州",416);
    City_Zone.insert(u8"徐州",516);
    City_Zone.insert(u8"福州",591);
    City_Zone.insert(u8"青岛",532);
    ui->comboBox->clear();
    foreach(const QString &str,City_Zone.keys())
        ui->comboBox->addItem(str,City_Zone.value(str));
}
void Widget::on_comboBox_currentIndexChanged(int index)
{
    QString zone=ui->comboBox->currentData().toString();
    ui->plainTextEdit->appendPlainText(zone);
    QVariant tmp=QString(u8"asd");
     qDebug() <<tmp.toString();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值