今天看一个开源程序发现有个这样的用法,很新奇,记录一下:
#include "widget.h"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
{
QVariant var;
var.setValue(new Widget);
qDebug()<<var.type();//QVariant::QWidget*
var.value<Widget *>()->show();
}
return a.exec();
}
QVariant仅存放QWidget对象的地址,销毁时不会销毁对应的QWidget对象。
这种写法可以带来很多便利。