#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//定义学生结构体类型
struct student
{
int iNo;
QString strName;
int score;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
};
#endif // MAINWINDOW_H
//.c
#include "mainwindow.h"
#include <QVariant>
#include <QDebug>
#include <QColor>
using namespace Qt;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QVariant qv1(298);
qDebug()<<"qv1:"<<qv1.toInt();
QVariant qv2("lingshengedu");
qDebug()<<"qv2:"<<qv2.toString();
QMap<QString,QVariant> qmap;
qDebug()<< endl;
qmap["int"] = 20000;//整型
qmap["double"] = 99.88;//浮点型
qmap["string"] = "Good";//字符串
qmap["color"] = QColor(255,255,255);//QColor类型
//输出:转换函数来处理
qDebug()<<qmap["int"]<< qmap["int"].toInt();
qDebug()<<qmap["double"]<< qmap["double"].toDouble();
qDebug()<<qmap["string"]<< qmap["string"].toString();
qDebug()<<qmap["color"]<< qmap["color"].value<QColor>();
//创建一个字符串列表:QStringList
qDebug()<<endl;
QStringList qsl;
qsl <<"A"<<"B"<<"C"<<"D"<<"E"<<"F";
QVariant qvsl(qsl);// 将列表存储在QVariant变量当中
if(qvsl.typeId()== QVariant::StringList)
{
QStringList qlist = qvsl.toStringList();
for(int i =0;i <qlist.size();i++)
{
qDebug()<<qlist.at(i);
}
}
//应用结构体类型和QVariant类配合使用
qDebug()<< endl;
student stu;
stu.iNo = 202201;
stu.strName = "sunny";
stu.score = 715;
//使用静态方法保存数据将结构体变量存储到QVairant类配合使用
QVariant qstu =QVariant::fromValue(stu);
if(qstu.canConvert<student>())//判断是否可以转换操作
{
student temp = qstu.value<student>();//获取数据
student qtemp = qvariant_cast<student>(qstu);//获取数据
qDebug()<<"student:iNo"<<temp.iNo <<",student:strName"<<temp.strName
<<",student:score"<<temp.score;
}
}
MainWindow::~MainWindow()
{
}
44-QVariant类应用
最新推荐文章于 2024-08-31 21:45:47 发布