// 示例:动态属性及使用 property 和 setProperty 存取属性值。 #include "m.h" #include #include using namespace std; int main(int argc, char *argv[]){ // 注册类型,此处没有体现这两个函数的作用,屏蔽之后依旧可运行 // 若需要在队列中的信号和槽连接中,或 QObject 的属性系统中使用该类型,则还 // 必须调用 qRegsiterMetaType 函数注册该类型,因为这些情况是动态运行的。 // qRegisterMetaType(); // qRegisterMetaType(); B mb; C mc; D md; Z mz; mb.i=2; mc.i=3; md.i=4; mz.gb(mb); mz.gc(mc); mz.gd(md); //使用 porperty 和 setProperty 存取属性值。 //mz.property("d"); //错误,不能使用 property 函数访问属性 d,因为属性 d 的类型 D 未注册。 mz.property("MMM"); //这是正确的,因为属性 MMM 不存在,所以,返回的是一个空的 QVariant 对象,可见,属性不存在与属性的类型未注册是不同的。 cout<().i<<" "<().i<<" "<().i<().i<().i<().i<