繁体   English   中英

Qt QML accessing QML registered object in C++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM