Qt58 自定义模型类1,QStandardItemModel通用模型类,QVariant变体类

学习自唐佐林老师的Qt


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

main.cpp

#include <QtCore/QCoreApplication>
#include <QVariant>
#include <QPoint>
#include <QDebug>
QVariant func()
{
    QVariant ret;
    return ret;//返回值类型可变
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //定义变体类型对象
    QVariant v1(1);
    QVariant v2(3.14);
    QVariant v3("520");
    QVariant v4(QPoint(15, 15));
    QVariant v5;
    //输出变体对象v1中保存值的类型,类型名,获取保存的值
    qDebug() << v1.type();
    qDebug() << v1.typeName();
    qDebug() << v1.toInt();
    qDebug() << endl;
    qDebug() << v2.type();
    qDebug() << v2.typeName();
    qDebug() << v2.toInt();//将v2所保存的值 以int形式输出
    qDebug() << v2.toDouble();//将v2所保存的值 以Double形式输出
    qDebug() << v2.value<double>();//value为变体类中的模板,调用时需要指定类型
    qDebug() << endl;
    qDebug() << v3.type();
    qDebug() << v3.typeName();
    qDebug() << v3.toInt();
    qDebug() << v3.value<QString>();
    qDebug() << endl;
    bool ok = true;
    qDebug() << v4.type();
    qDebug() << v4.typeName();
    qDebug() << v4.toInt(&ok);
    qDebug() << ok;
    qDebug() << v4.toPoint();
    qDebug() << endl;
    //v5 没有存数据,不合法
    qDebug() << v5.isValid();
    
    return a.exec();
}

在这里插入图片描述

Guess you like

Origin blog.csdn.net/LinuxArmbiggod/article/details/116423993