класс в С++ который отправляет сигнал в QML. Ниже часть кода. Проблема, собственно, заключается в том, что в QML->Connections при обработке сигнала не выполняется код кроме console.log(). Сигнал точно проходит и в С++ тоже, значит проблема не в QObject. Буду благодарен за любые мысли по этму поводу.
...часть main.cpp
POSTerminal Terminal(parser.getPath("posTerminal","port"));
QQmlApplicationEngine engine;
QQmlContext* context = engine.rootContext();
context->setContextProperty("Terminal", &Terminal);
QQmlComponent comp(&engine,QUrl(QStringLiteral("qrc:/main.qml")));
QObject* pobj = comp.create();
...сам класс
class POSTerminal : public QObject
{
Q_OBJECT
public:
explicit POSTerminal(const QString& _port);
signals:
void sSuccess();
void sError(uint8_t);
...часть QML
ApplicationWindow{
property int time: 120;
Connections{
target: Terminal
ignoreUnknownSignals: true
onSError: {
cashlessWindow.close(); //не выполняется
mainWindow.showFullScreen(); //не выполняется
console.log("error"); //выводит сообщение в дебаг
time = 0;
console.log(time); //выводит 0 хотя в UI без изменений
}
onSSuccess: console.log("success");
}
}
С маленькой буквы тоже самое. Выполняться должно так, как сигнал вызывается
Обсуждают сегодня