[英]Qt QML accessing QML registered object in C++
我有一个派生 QObject 的 class。
class SerialPortWidgetBackend : public QObject
{
Q_OBJECT
public:
SerialPortWidgetBackend();
QSerialPort *sp;
Q_INVOKABLE QStringList refreshPorts(void);
Q_INVOKABLE bool openPort(QString portName,QString baudRate);
Q_INVOKABLE bool closePort();
};
在 QML 文件中定义 object 像这样。
SerialPortWidgetBackend{
id: backend
}
QML 文件实际上实现了搜索可用的 comport,配置并打开它。 这工作正常,但我想访问 sp object。 qml 注册如下
qmlRegisterType<SerialPortWidgetBackend>("com.company.serialportwidgetbackend",1,0,"SerialPortWidgetBackend");
已注册的 object 私有。 如何访问它?
我认为在 class 中声明公共属性是一种不好的做法。 您可以改为使用 getter/setter 定义属性,这些属性可以通过 Q_PROPERTY 宏从 qml 文件中访问。
请点击此链接了解更多信息: https://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.ZFC35FDC70D5FC69D7698ZA822E
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.