我正在尝试通过Q_INVOKABLE QStringList availablePorts()
我在课堂上直接公开给 QML 的类中的函数公开 QSerialPort.available() main
。
主要的:
qmlRegisterType<SerialPortManager>("com.MyApp.qml", 1, 0, "SerialPortManager");
串行端口管理器
class SerialPortManager : public QObject
{
Q_OBJECT
public slots:
Q_INVOKABLE virtual QStringList availablePorts() {
QList<QSerialPortInfo> portsAvailable = QSerialPortInfo::availablePorts();
QStringList names_PortsAvailable;
for(QSerialPortInfo portInfo : portsAvailable) {
names_PortsAvailable.append(portInfo.portName());
}
return names_PortsAvailable;
}
这对于 QML 中的类型无效,model
因为它会引发Unable to assign QStringList to QQmlListModel*
错误。
QML
ComboBox {
model: serial.availablePorts()
}
SerialPortManager {
id: serial
}
那么我该如何解决呢?