首页 > 其他 > 详细

What is different between dynamic_cast and qobject_cast

时间:2020-07-14 09:09:10      阅读:68      评论:0      收藏:0      [点我收藏+]

What is different between dynamic_cast and qobject_cast?

  • qobject_cast can only be used with QObject derived classes having Q_OBJECT macro.

  • qobject_cast doesn‘t use RTTI.

 

A resent usage of qobject_cast is getting a pointer to a class inside a slot:

QObject::connect( btn, &QPushButton::clicked, this, &MyClass::onClicked );
void MyClass::onClicked()
{
    // How to get pointer to a button:
    QObject *p = sender();
    // It‘s QObject. Now we need to cast it to button:
    QPushButton *btn = qobject_cast<QPushButon *>( p );
    Q_ASSERT( btn != nullptr ); // Check that a cast was successfull
    // Now we can use a QObject as a button:
    btn->setText( "We just clicked on a button!" );
}

What is different between dynamic_cast and qobject_cast

原文:https://www.cnblogs.com/Stephen-Qin/p/13296784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!