如何在对象创建时从 QML 调用任意C++函数?
How to call arbitrary C++ functions from QML right at the object's creation?
这是我的main.qml:
import QtQuick 2.0
import A 1.0
Item {
width: 1280
height: 720
OpenGlVideoQtQuick {
}
}
这是OpenGlVideoQtquick的一部分:
class OpenGlVideoQtQuick : public QQuickItem
{
Q_OBJECT
Q_PROPERTY(qreal t READ t WRITE setT NOTIFY tChanged)
public:
OpenGlVideoQtQuick();
qreal t() const { return m_t; }
void setT(qreal t);
Q_INVOKABLE void initRtspMedia(const QString &uri);
}
在创建OpenGlVideoQtQuick
QML对象时,如何从QML调用initRtspMedia()
?我只看过按钮和其他东西如何称呼C 代码,但不能立即调用它。
在这种情况下,您可以使用component.oncompleted:
import QtQuick 2.0
import A 1.0
Item {
width: 1280
height: 720
OpenGlVideoQtQuick {
id: opengl_video
Component.onCompleted: opengl_video.initRtspMedia("some uri")
}
}
或来自C ,您可以在QQMLPARSERSTATUS的帮助下进行:
class OpenGlVideoQtQuick : public QQuickItem, public QQmlParserStatus
{
Q_OBJECT
Q_PROPERTY(qreal t READ t WRITE setT NOTIFY tChanged)
Q_INTERFACES(QQmlParserStatus)
public:
OpenGlVideoQtQuick();
qreal t() const { return m_t; }
void setT(qreal t);
Q_INVOKABLE void initRtspMedia(const QString &uri);
void classBegin() {}
void componentComplete() {
initRtspMedia("some uri");
}
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- C++为每个元素调用任意函数
- 使用来自C++的任意数量的参数(在编译时未知)调用 Python 函数
- 使用文件名作为字符串从任意souce .cpp文件中调用函数
- 如何在对象创建时从 QML 调用任意C++函数?
- 将具有任意参数和占位符的函数存储在类中,然后再调用它
- 推断 lambda 的调用签名或 "make_function" 的任意可调用
- 使用C++检测习惯用法计算任意可调用对象的参数
- 使用 Google C++ 模拟框架 (Google Mock) (V1.5) 将任意参数传递给调用的方法
- 折叠具有任意可调用的表达式
- 在调试c++程序期间调用round()函数时,GDB打印任意值
- 通过模板元编程用try包装任意函数调用.catch块在现代c++中
- 如何在任意随机时间退出选定的系统调用