- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经派生了 QGraphicsItem 和 QGraphicsScene 类。我希望这些项目能够调用 scene() 并获得一个 derviedGraphicsItem * 而不是 QGraphicsItem *,所以我重新实现了 QGraphicsScene::itemAt 以返回一个派生指针。
DerivedItem* DerivedScene::itemAt( const QPointF &position, const QTransform &dt ) const
{
return qobject_cast< DerivedItem * >(
QGraphicsScene::itemAt(position, dt) );
}
scene.cpp: In member function ‘DerivedItem* DerivedScene::itemAt(qreal, qreal, const QTransform&) const’:
scene.cpp:28: error: no matching function for call to ‘qobject_cast(QGraphicsItem*)’
DerivedScene* DerivedItem::scene() const
{
return qobject_cast< DerivedScene * >( QGraphicsItem::scene() );
}
最佳答案
仅仅为了转换而从 QObject 继承是没有意义的。 qobject_cast 的优势
在 qobject_cast documentation 中几乎总结了动态转换。 :
The qobject_cast() function behaves similarly to the standard C++ dynamic_cast(), with the advantages that it doesn't require RTTI support and it works across dynamic library boundaries.
关于QT:qobject_cast 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431371/
我已经派生了 QGraphicsItem 和 QGraphicsScene 类。我希望这些项目能够调用 scene() 并获得一个 derviedGraphicsItem * 而不是 QGraphic
谁能用尽可能简单的术语(或尽可能简单)解释什么 qobject_cast是,它的作用以及为什么我们需要将一种类类型转换为另一种类类型? 比如,我在转换 int 的意义上进行了类型转换作为char或 Q
我刚刚在 Qt 中找到了以下代码,我有点困惑这里发生了什么。 尤其是reinterpret_cast(0)有吗? template inline T qobject_cast(const QObje
我有一个纯虚拟A类,我在上面做 Q_DECLARE_INTERFACE(A, "org.something.A") 我有一个实现为类 B 的插件,它继承了 A 和 QObject,具有接口(inter
我正在尝试用 Qt 编写一个应用程序,在我遇到这个愚蠢的问题之前,该应用程序运行得还算不错。我有一个 Node 类,它可以有一个指向 Workplace 类实例的指针。我还为该指针定义了 getter
在Qt documentation , 有一个使用 qobject_cast 的例子。 按照这个例子,我尝试了这个: #include #include #include void test_c
考虑到布局是在 QWidget 中设置的,代码如下: setLayout(new QVBoxLayout); 然后需要检索它(向布局添加更多内容)。这是通过以下代码完成的: QHBoxLayout *
我有一个由 QFutureWatcher 触发的插槽。我正在尝试转换发件人以获得结果 QFutureWatcher>* QFW = qobject_cast>*>(sender()); 但不断得到 e
我在 Qt 中实现低级插件,但偶然发现了一个奇怪的编译错误。 当我尝试使用 qobject_cast 将插件实例转换为 const 接口(interface)指针时,它告诉我接口(interface)
大师和模板专家,我需要你们的帮助... 我目前正在寻找一种检查 QObject 父层次结构的解决方案。我有一个具有以下层次结构(父到子)的自定义 QDialog: QDockWidget > Cust
我有一组相当复杂的 C++ 类,它们是用 Java 重写的。所以每个类都有一个继承类,然后它还实现了一个或多个抽象类(或接口(interface))。 是否可以使用 qobject_cast() 从类
来自Qt的计算器示例: void Calculator::digitClicked() { Button *clickedButton = qobject_cast(sender());
我有一个 Subclass 类,它是 QObject 的子类。我想知道项目何时被删除,所以我将这个插槽连接到 Subclass 继承的 QWidget::destroyed() 信号。但是,当我尝试使
我是一名优秀的程序员,十分优秀!