C
信号结构
struct Qul::Signal允许创建可以从不链接 QML 的信号。 更多...
头文件 | #include <qul/signal.h> |
自从 | Qt Quick Ultralite 1.0 |
公共函数
bool | isConnected() const |
void | operator()() const |
详细描述
当将信号作为派生自 Qul::Object 或 Qul::Singleton 的类的成员时,qmlinterfacegenerator 工具将生成一个可以用 onXxxx:{...} 语法从 QML 代码连接的信号。
Signal 处理的模板参数应为函数签名,包括参数名称,qmlinterfacegenerator 使用它们将它们暴露给 qml。
示例
class MySingleton : public Qul::Singleton<MySingleton> { public: Qul::Signal<void()> changed; // signal without arguments Qul::Signal<void(int key, qreal value)> newValue; // signal with arguments };
这可以像以下从 QML 使用
MySingleton.onNewValue: console.log("Got a new value for key", key, ": ", value);
要从 C++ 代码发出信号,您可以使用 operator()。
MySingleton::instance().newValue(1, 3.141592);
如果成员函数被调用的方式与 QML 信号处理程序完全相同,它将被视为没有以 on
前缀和以小写字母开头命名的信号。
示例
class MyObject : public Qul::Object { public: Qul::Signal<void()> onFoo; // signal named as QML signal handler };
这可以像以下从 QML 使用
Item { MyObject { id: myObject onFoo: console.log("Foo signal invoked.") } MouseArea: { onClicked: myObject.foo(); } }
成员函数文档
bool Signal::isConnected() const
如果任何槽或 QML 信号处理程序连接到此信号实例,则返回 true
,否则返回 false
。
注意: 槽目前不是 Qt Quick Ultralite 提供的公开 API 的一部分
void Signal::operator()() const
发出信号。
注意: 如果模板参数 T 不是 void
或空,则此调用运算符将具有参数。
在某些 Qt 许可下可用。
了解更多信息。