- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个由 QFutureWatcher 触发的插槽。我正在尝试转换发件人以获得结果
QFutureWatcher<QPair<QImage,QString>>* QFW = qobject_cast<QFutureWatcher<QPair<QImage,QString>>*>(sender());
但不断得到
error: static assertion failed: qobject_cast requires the type to have a Q_OBJECT macro
我不太确定这里出了什么问题,这些都是 Qt 内置类型,所以我做错了什么?
最佳答案
您必须将 Q_OBJECT 放入类定义中,如下所示:
class MyClass : public QObject
{
Q_OBJECT
// ^^^^^^^^^^
public:
MyClass();
/*...*/
}
关于c++ - qobject_cast 没有 Q_OBJECT 宏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969064/
我已经派生了 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() 信号。但是,当我尝试使
我是一名优秀的程序员,十分优秀!