Код: Выделить всё
#ifndef SERIALPORTSETTINGS_H
#define SERIALPORTSETTINGS_H
#include
#include
#include
#include
struct SerialPortSettings {
Q_GADGET
QML_VALUE_TYPE(serialPortSettings)
Q_PROPERTY(QString name MEMBER name)
Q_PROPERTY(qint32 baudRate MEMBER baudRate)
Q_PROPERTY(QString stringBaudRate MEMBER stringBaudRate)
Q_PROPERTY(QSerialPort::DataBits dataBits MEMBER dataBits)
Q_PROPERTY(QString stringDataBits MEMBER stringDataBits)
Q_PROPERTY(QSerialPort::Parity parity MEMBER parity)
Q_PROPERTY(QString stringParity MEMBER stringParity)
Q_PROPERTY(QSerialPort::StopBits stopBits MEMBER stopBits)
Q_PROPERTY(QString stringStopBits MEMBER stringStopBits)
Q_PROPERTY(QSerialPort::FlowControl flowControl MEMBER flowControl)
Q_PROPERTY(QString stringFlowControl MEMBER stringFlowControl)
Q_PROPERTY(bool localEchoEnabled MEMBER localEchoEnabled)
Q_PROPERTY(QString delimiter MEMBER delimiter)
Q_PROPERTY(QString samplingFrequency MEMBER samplingFrequency)
Q_PROPERTY(QString headerLength MEMBER headerLength)
Q_PROPERTY(bool mergePlots MEMBER mergePlots)
public:
QString name;
qint32 baudRate;
QString stringBaudRate;
QSerialPort::DataBits dataBits;
QString stringDataBits;
QSerialPort::Parity parity;
QString stringParity;
QSerialPort::StopBits stopBits;
QString stringStopBits;
QSerialPort::FlowControl flowControl;
QString stringFlowControl;
bool localEchoEnabled;
QString delimiter;
QString samplingFrequency;
QString headerLength;
bool mergePlots;
};
Q_DECLARE_METATYPE(SerialPortSettings)
#endif // SERIALPORTSETTINGS_H
и я пытаюсь использовать этот тип в качестве свойства с:
import DataLogStream
ApplicationWindow {
width: 1080
height: 720
property SerialPortSettings portSelectionSettings
// ....
}
Теперь, когда я пытаюсь использовать SerialPortSettings или SerialPortSettings в качестве типа свойства, я получаю ошибку SerialPortSettings не является типом для serialportSettings . Но если я просто использую его как var - свойство var portselectionsettings - я могу увидеть данные.
Как мне использовать правильный тип здесь, не вызывая эту ошибку?
Код: Выделить всё
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "plotstreamservice.h"
name: "PlotStreamService"
accessSemantics: "reference"
prototype: "QObject"
exports: ["DataLogStream/PlotStreamService 0.0"]
exportMetaObjectRevisions: [0]
Property { ...}
}
Component {
file: "portselectionservice.h"
name: "PortSelectionService"
accessSemantics: "reference"
prototype: "QObject"
exports: ["DataLogStream/PortSelectionService 0.0"]
exportMetaObjectRevisions: [0]
Property { ...}
Method { name: "start" }
}
Component {
file: "serialportsettings.h"
name: "SerialPortSettings"
accessSemantics: "value"
exports: ["DataLogStream/serialPortSettings 0.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Property { ... }
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ml-as-type
Мобильная версия