1
我有這個類,它註冊爲的QVariant使用qvariant_cast與自定義類型
class MyTimeLine
{
public:
MyTimeLine(double kStart = 0, double kEnd = 1);
void paint(QPainter *painter, const QRect &rect,
const QPalette &palette)const;
private:
double _kStartTime;
double _kEndTime;
};
Q_DECLARE_METATYPE(MyTimeLine)
然後我將它轉換中的QVariant,當我想用qvariant_cast並獲得MyTimeLine對象,我得到的對象,默認的構造函數創建
myTask->setData(2,Qt::UserRole,
QVariant::fromValue(MyTimeLine(a,b)));
MyTimeLine taskTimeLine = qvariant_cast<MyTimeLine>(index.data());
//taskTimeLine._kStartTime = 0;
//taskTimeLine._kEndTime = 1;
也許你的'index.data()'返回這樣的對象? – vahancho
謝謝,我忘了指定角色,index.data(Qt :: UserRole)返回我想要的 – user3510417
'qRegisterMetaType'錯過 –