- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个派生自的基类。该基类 (BaseClass
) 是一个纯 c++ 类(不是从 QObject 派生的)并实现了方法,我想将这些方法原封不动地提供给我的 QML 接口(interface)。
假设基类实现了方法bool foobar()
。在我的派生类 (DerivedClass
) 中,我现在将它们包装成这样:
派生类.h:
class DerivedClass : public QObject, public Singleton<Phone>, public BaseClass {
Q_OBJECT
public:
Q_INVOKABLE bool qt_foobar();
派生类.cpp:
bool DerivedClass::qt_foobar() {
return DerivedClass::instance().foobar();
这工作得很好,但是我想知道是否有更优雅的方法来传递或声明相应的方法为 Q_INVOKABLE
而无需包装和重命名。
最佳答案
您至少可以通过显式调用 BaseCass 的实现 ( as explained here ) 并直接在 header 中这样做来避免使用不同的名称:
class DerivedClass : public QObject, public Singleton<Phone>, public BaseClass
{
Q_OBJECT
public:
Q_INVOKABLE bool foobar() { return BaseClass::foobar() };
除了 header 中签名前的 Q_INVOKABLE
之外,我从未遇到过将可调用方法注册到 MOC 的方法。
关于c++ - 有什么方法可以避免手动包装基类的方法以将它们标记为 Q_INVOKABLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33180707/
我有一个派生自的基类。该基类 (BaseClass) 是一个纯 c++ 类(不是从 QObject 派生的)并实现了方法,我想将这些方法原封不动地提供给我的 QML 接口(interface)。 假设
这是我的 C++ 函数 头文件: Q_INVOKABLE void setSelection(qint64 start, qint64 end, qint64 init); 主体文件: void Se
这是我的 C++ 函数 头文件: Q_INVOKABLE void setSelection(qint64 start, qint64 end, qint64 init); 主体文件: void Se
试图了解基于 Qt/QML 的应用程序的最佳实践,其中我们将方法标记为 Q_INVOKABLE。如果我们从其中一种方法中抛出异常,会有什么后果? class Class { ... Q
这个问题在这里已经有了答案: QObject Multiple Inheritance (3 个答案) 关闭 3 年前。 我有一个有趣的问题。我不知道如何组合从 QObject 继承的两个类。在基类
我在调用 Q_INVOKABLE 函数时遇到 QML 问题。尽管我将函数标记为 Q_INVOKABLE,但我遇到了错误 TypeError: Result of expression 'azdownl
我正在尝试简化(即摆脱大量样板代码)在必须标记为“INVOKABLE”的类中创建函数。 (非常像另一个问题 other question ) 从小处着手,我只是尝试使用一个函数: #define CO
我想从 QML 调用 C++ 方法,将参数传递给它。据我所知,我应该用宏 Q_OBJECT 标记类,用 Q_INVOKABLE 标记所需的公共(public)函数。 虽然我这样做了,但我仍然遇到运行时
我有一个 C++ 方法 Q_INVOKABLE。我可以从 QML 调用此方法,它在返回基本类型(如 QString)时有效。但我不能使用自定义类型。我应该怎么做?我应该返回一个 QVariant 吗?
众所周知,在 JavaScript 中,所有函数都可以接受任意数量的参数。 在 Qt 中,您可以使用 Q_INVOKABLE 标记 QObject,其方法可从 QML 访问。例如: class myO
我有一个非常简单的任务导致绕圈子,主要是因为 QML 和 QT 的 C++ 端的分离。因此,我不需要询问具体的 QT 问题,而是需要关于应该使用哪些 QT 和 QML 函数来实现我的用例的一般性建议。
我正在尝试测试 QQmlPropertyMap 类。如果我可以将它子类化,它似乎可以很好地满足我的需求。文档 here甚至给出了一些关于如何对其进行子类化的基本说明。所述文档还指出此类派生自 QObj
我有一个带有 Q_INVOKABLE 方法的 MasterController QObject,该方法返回对 MyType 对象的 const 引用,这是从 QObject 派生的另一种类型。我在 m
我有一个 Qt 函数: void MainWindow::button_clicked(Qstring a, Qstring b, Qstring c, Qstring d) 我从 QML 收集数据,
我刚刚意识到我几乎可以调用公开给 QML 的对象的任何函数。现在我对 Q_INVOKABLE 很好奇。 Qt5 docs状态: [...] any QML code can access the fo
我有简单的 c++ 类方法: Q_INVOKABLE const QString& getRiderTypeName(const int& riderTypeIndex) const; 及其实现: c
我是一名优秀的程序员,十分优秀!