现象:

Qt可以通过元对象获取对象的类名。

例如:获取按钮的类名可以使用btn->metaObject()->claassName(); 其中btn是QPushButton类型的指针。

 

在判断一个对象的类名使用了 == ,如下所示:

结果显示false。

 

原因:

className()函数返回值类型是const char*,而“QPushButton”字符串字面量是字符数组。两者用==比较的是地址,很显然是不一样的。

 

解决办法:

使用strcmp函数比较

嫌麻烦的话也可以将"QPushButton"改为QString("QPushButton");

 

---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。