Как я могу разрешить «модуль QML не найден» в Qt Creator

Этот вопрос связан с оставшимся без ответа вопросом «Отображать видео в Qml через плагин Gstreamer qmlglsink», поскольку у меня такая же проблема.

Проблема в том, что Qt Creator не может найти файл, необходимый для разрешения оператора import «org.freedesktop.gstreamer.GLVideoItem 1.0».

Когда я создаю новый проект QML и добавляю строку импорта «org.freedesktop.gstreamer.GLVideoItem 1.0». Я получаю эту ошибку. Проект компилируется и работает нормально.

Как я могу разрешить «модуль QML не найден» в Qt Creator

У меня есть еще один проект, взятый из загруженного мной примера. Он использует GstGLVideoItem в своем qml-файле. Он также дает ту же ошибку, а также компилируется и работает нормально. Он без проблем воспроизводит видео Big Buck Bunny из файла.

Я полностью перестроил свой компьютер, пытаясь решить эту проблему. Переустановил Qt 5.15.2 с помощью онлайн-установщика и GStreamer 1.18.0, следуя инструкциям на веб-сайте GStreamer, на ПК с Ubuntu 20.10. И Qt, и GStreamer работают, как ожидалось. Мне удалось собрать и запустить любой желаемый пример Qt без проблем. Я также смог скомпилировать и запустить любое из руководств по GStreamer, а также свои собственные конвейеры с использованием C и gst-launch-1.0.

Эта проблема возникает в Qt Creator, когда я объединяю их и пытаюсь отобразить видео GStreamer в QML.

Как я могу разрешить «модуль QML не найден» в Qt Creator

Я новичок в Linux, Qt, GStreamer, qmake, cmake ... Как я могу это отладить? Какой файл ищет оператор импорта? Это файл .qml или какой-то другой файл? Как мне найти точное имя файла, чтобы узнать, существует ли оно?

Вот содержимое файла .pro для проекта, в котором отображается видео. Я перепробовал все, что смог найти в Интернете, чтобы решить эту проблему, но без всякой радости.

TEMPLATE = app

QT += qml quick widgets

CONFIG += qml_debug

QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig debug
PKGCONFIG += \
gstreamer-1.0 \
gstreamer-sdp-1.0 \
gstreamer-gl-prototypes-1.0 \
gstreamer-gl-1.0 \
gstreamer-gl-egl-1.0 \
gstreamer-app-1.0 \
gstreamer-net-1.0 \
gstreamer-video-1.0 \
gstreamer-controller-1.0 \
gstreamer-rtsp-1.0 \
gstreamer-plugins-base-1.0 \
gstreamer-pbutils-1.0 \
gstreamer-check-1.0 \
gstreamer-allocators-1.0 \
gstreamer-rtp-1.0 \
gstreamer-riff-1.0 \
gstreamer-tag-1.0 \
gstreamer-audio-1.0 \
gstreamer-gl-x11-1.0 \
gstreamer-fft-1.0 \
gstreamer-base-1.0

CONFIG += c++17

INCLUDEPATH += /usr/include/gstreamer-1.0/
INCLUDEPATH += /usr/include/glib-2.0/
INCLUDEPATH += /usr/lib/x86_64-linux-gnu/glib-2.0/include/

DEFINES += GST_USE_UNSTABLE_API

INCLUDEPATH += ../lib

SOURCES += main.cpp \
    qmlplayer.cpp \
    setplaying.cpp

RESOURCES += qmlsink.qrc

QML_IMPORT_PATH += /usr/lib/x86_64-linux-gnu/gstreamer-1.0
QML_IMPORT_PATH += /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0
QML_IMPORT_PATH += /lib/x86_64-linux-gnu/gstreamer-1.0

HEADERS += \
    qmlplayer.h \
    setplaying.h

Какая это версия QtCreator?

folibis 06.04.2021 12:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
33
1

Ответы 1

Мэтью Уотерс на форуме GStreamer ответил на этот вопрос.

Цитирую его ниже.

Ах, ваша проблема заключается в том, что конструктор Qt не показывает поиск соответствующий qml-код. Этот вариант использования в настоящее время не поддерживается qmlglsink..

Проблема в том, что необходимый элемент QML содержится в qmlglsink и регистрируется динамически, когда элемент сам создается. Дизайнер Qt ничего не знает о GStreamer не может выполнить эту инициализацию за вас. Нет qmldir или файлы qmltype для qmlglsink.

«Исправление» связано с довольно сложной реструктуризацией qmlglsink. элемент для поддержки размещения части / плагина qml в отдельном .таким образом можно найти с помощью инструментов Qt (используя qmldir или что-то еще).

Другие вопросы по теме