• 8989阅读
  • 10回复

qRegisterMetaTypeStreamOperators [复制链接]

上一主题 下一主题
离线yanqixiao
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-19
class MyClass
{
public:
    QBrush brush;
    QString str;
};

Q_DECLARE_METATYPE(MyClass);
但是对下面的函数不知道怎么用?
qRegisterMetaTypeStreamOperators<MyClass>("MyClass");
那位高手帮个忙点拨一下。。。
彪悍不需要理由
离线yanqixiao

只看该作者 1楼 发表于: 2010-01-20
没人知道吗?
彪悍不需要理由
离线nmiirq

只看该作者 2楼 发表于: 2010-02-02
帮项,也正在头疼这个!
离线firstcong

只看该作者 3楼 发表于: 2011-11-22
  用了之后用QDataStream 输出到文件,内容为空,求解啊
菜鸟也有翱翔的一天~~~
离线roywillow

只看该作者 4楼 发表于: 2011-11-22
应该是最后还是要重载流操作符吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线dbzhang800

只看该作者 5楼 发表于: 2011-11-22
多看manual即可,有现成的具体的例子
离线zhy282289
只看该作者 6楼 发表于: 2011-11-22
晕manual上不是写得很清楚的么,注册后重写:
QDataStream &operator<<(QDataStream &out, const MyClass &myObj);
QDataStream &operator>>(QDataStream &in, MyClass &myObj);
为什么我脸这么胖~
离线firstcong

只看该作者 7楼 发表于: 2011-11-22
回 6楼(zhy282289) 的帖子
也重载了的,代码如下
class TestData{
public:
    TestData(){
        
    }
    int a;
    int b;
    int c;
};
Q_DECLARE_METATYPE(TestData)
inline QDataStream &operator>>(QDataStream &in, TestData &testdata)
{
     in >>testdata.a >> testdata.b >> testdata.c;
     return in;
}
inline QDataStream &operator<<(QDataStream &out, const TestData &testdata)
{
    out<< testdata.a << testdata.b << testdata.c;
    return out;
}
菜鸟也有翱翔的一天~~~
离线firstcong

只看该作者 8楼 发表于: 2011-11-22
使用部分如下:
qRegisterMetaTypeStreamOperators<TestData>("TestData");
    QFile file("a.txt");
    file.open(QIODevice::WriteOnly);
    QDataStream out;
    TestData testData;
    testData.a = 10;
    testData.b = 5;
    testData.c = 2;
    QVariant variant = QVariant::fromValue(testData);
    out << variant;
    file.close();
菜鸟也有翱翔的一天~~~
离线firstcong

只看该作者 9楼 发表于: 2011-11-22
原来是在输出的时候忘了“out.setDevice(&file);”,可以了,是我太粗心了
菜鸟也有翱翔的一天~~~
离线zhy282289
只看该作者 10楼 发表于: 2011-11-22
为什么我脸这么胖~
快速回复
限100 字节
 
上一个 下一个