Y66ask34
@Y66ask34

Ошибка: undefined reference to `QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool)' при наличии указанного метода, как исправить??

Новичок в Qml - Qt, прошу развернутый ответ.

Пытаюсь связать Qml модуль, созданный в Qt Design Studio, с реализацией на C++.
Появляется данная ошибка в неком файле "qqmldebug.h" , который является embeded файлом Qt, в связи с чем не могу изменить его без использования chmod.

Прикладываю код своего приложения и файла "qqmldebug.h", а так же скриншот ошибок, если это поможет

Tachometer.pro:
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

RESOURCES += \
        $$files(qml/*)


HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target


mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QObject>
#include <QMainWindow>
#include <QGuiApplication>
#include <QKeyEvent>
#include <QVariant>
#include <QtQuick/QQuickView>
#include <QtQml/QQmlContext>
#include <QtQml/QQmlEngine>



QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    Q_INVOKABLE void startStopAnimation();
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QObject* root;
    QQuickView view;

};
#endif // MAINWINDOW_H


mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    view.resize(1920, 1080);
    view.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView);
    view.engine()->addImportPath("/opt/Qt/Tools/QtDesignStudio-3.1.0-preview/lib/Qt/qml");
    view.setSource(QUrl("/home/y66ask34/QtPojects/qtQuickConv/qml/Qwerty/content/Screen01.ui.qml"));

    root = view.rootContext();

    view.rootContext()->setContextProperty("window", this);


}

void MainWindow::startStopAnimation()
{
    QObject* timeLine = root->findChild<QObject*>("moveTimeLine");
    //QObject* timeLineAnimation = timeLine->findChild<QObject*>("TimeLineAnimation");
    QObject* monitor = root->findChild<QObject*>("text8");
    int counter = 0;
    QVariant countFrame = QVariant(6000.0);

    while (timeLine->property("currentFrame") != timeLine->property("endFrame"))
    {
        if (timeLine->property("currentFrame").toInt() >= 6000 and timeLine->property("currentFrame").toInt() <= 10000)
        {
            monitor->property("Text") = counter;
            counter++;
        }
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}


main.cpp:
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}


Ошибки:
62248dcb17cce035883378.png:
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
Подключите в файле проекта qml
QT += qml
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы