- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以在 QMetaMethod 中接收返回类型和/或参数类型的完整类型名称?
例子,
namespace N1 {
namespace N2 {
class C1: public QObject {
Q_OBJECT
};
}
}
class C2: public QObject {
Q_OBJECT
public:
typedef N1::N2::C1 C1T;
Q_INVOKABLE void foo(C1T c1);
};
QMetaMethod method;
// some logic to find method void foo(C1T) of C2
auto name = method.parameterNames(); // return "C1T"
auto name2 = C1T::staticMetaObjec.className() // return "N1::N2::C1"
是否可以找出方法参数名称的全名,而不是“C1T”,而是“N1::N2::C1”,或者至少是“C1”?命名空间的同样问题,如果 C2 在 N1 命名空间中并且我使用 N2::C1 作为参数类型,它返回“N2::C1”,我可以有“N1::N2::C2”吗?
最佳答案
moc 不理解 C++ 类型系统。对于 moc,类型是字符串,并且仅当字符串匹配时才等同于另一种类型。您必须坚持一种表示参数类型的方式,并使用它。
关于c++ - QMetaMethod 中的完整类型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109151/
我是 QT 的新手,我只是在测试 MOC。对于给定的类: class Counter : public QObject { Q_OBJECT int m_value; public: Count
是否可以在 QMetaMethod 中接收返回类型和/或参数类型的完整类型名称? 例子, namespace N1 { namespace N2 { class C1: public QObj
给定一个指向 QObject 派生类的方法的指针:有没有办法获取指针指向的方法的 QMetaMethod?我基本上是在寻找类似 QMetaMethod::fromSignal 的函数,但用于插槽。 注
Qt allows you to have arbitrary tags在插槽/Q_INVOKABLE 方法上使用此语法: // In the class MainWindow declaration
在包含默认参数的方法上调用 QMetaMethod::invoke() 时,调用失败。 class MyClass : public QObject { Q_OBJECT public:
在一些 Qt 示例中,我看到他们使用QTimer::singleShot(0, this , SLOT(funcA())),为什么不直接调用槽funcA?使用 QMetaMethod::invoke
QMetaObject系统提供了一些基本的反射API。我想要做的是调用通过该系统可用的给定插槽或方法。 但是,方法的参数和名称最初都是 QString 值。该文档显示了一个示例: QString re
我用函数 imshow() 创建了 2 个线程;来自openCV 2.4.8,代码如下: void camera1 (string url) { Mat img; .... imshow(
我有一个基类 Binded 设置,用于将其中的属性与给定的小部件绑定(bind),例如示例中的 LineEdit。我坚持使用连接信号和插槽。正如我所见,它与 How to use QMetaMetho
我在一个对象中有两个 QObject 子类实例和两个 QMetaMethod 信号实例,在另一个对象中有槽。我想将这个信号和插槽相互连接。 我查看了 qobject.h 文件,发现 SIGNAL()
我是一名优秀的程序员,十分优秀!