Рейтинг:1

[QT][QML] Невозможно использовать QTLocation и QTPositioning в моем представлении QML

флаг es

в моем проекте QT/QML, созданном с помощью QT 6.1 и операционной системы Ubuntu 20.04, я бы использовал QTMapView. Для этого я попытался установить QTLocation и QTPosition с помощью следующей команды:

sudo apt установить qml-module-qtlocation qml-module-qtpositioning

Как предложено из следующей темы:

QtLocation и QtPositioning не установлены

После этого я попытался импортировать в свой QML-представление QTLocation и QTPosition со следующим кодом

импорт QtLocation 5.12
импорт QtPositioning 5.12

Но я получаю сообщение «Модуль QML не найден» для обоих импортов.

Ниже вы можете найти также файл проекта CMakeLists.txt:

cmake_minimum_required (ВЕРСИЯ 3.14)

проект(myapp ВЕРСИЯ 0.1 ЯЗЫКИ CXX)

установить (CMAKE_INCLUDE_CURRENT_DIR ON)

установить (CMAKE_AUTOUIC ON)
установить (CMAKE_AUTOMOC ВКЛ)
установить (CMAKE_AUTORCC ON)

установить (CMAKE_CXX_STANDARD 17)
установить (CMAKE_CXX_STANDARD_REQUIRED ON)

find_package (НАЗВАНИЯ QT КОМПОНЕНТЫ Qt6 Core Quick ТРЕБУЕТСЯ)
find_package (ТРЕБУЕТСЯ КОМПОНЕНТ Qt6 Core Quick)

установить (CMAKE_EXPORT_COMPILE_COMMANDS 1)

установить (PROJECT_SOURCES
        main.cpp
        qml.qrc
        изображения.qrc
)

qt_add_executable (мое приложение
    РУЧНАЯ_ФИНАЛИЗАЦИЯ
    ${PROJECT_SOURCES}
)

target_compile_definitions (мое приложение
  PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries (мое приложение
  ЧАСТНЫЙ Qt6::Core Qt6::Quick)

set_target_properties (СВОЙСТВА myapp
    QT_QML_MODULE_VERSION 1.0
    QT_QML_MODULE_URI com.my.myapp
)

список(ПРИЛОЖЕНИЕEND QML_IMPORT_PATH .)

qt6_qml_type_registration (мое приложение)
qt_import_qml_plugins (мое приложение)
qt_finalize_executable (мое приложение)

Я что-то пропустил? Как решить проблему и правильно импортировать компоненты карты? Большое тебе спасибо; Я старался быть более подробным, но если вам нужна дополнительная информация, не стесняйтесь спрашивать меня.

Рейтинг:1
флаг zw

Вы создаете дополнительные проблемы, используя Qt 6.1 в Ubuntu 20.04 LTS. Эта версия поставляется с Qt 5.12.Будущее всех Qt 6 непонятно как для Debian, так и для Ubuntu.

Итак, откройте терминал и установите необходимые пакеты разработки для Qt с официального хранилище:

sudo apt-get установить qtlocation5-dev qtpositioning5-dev

а затем скомпилируйте ваше, возможно, отличное приложение.

Archimede avatar
флаг es
Во-первых, спасибо за ваш ответ; Перепробовал все ваши шаги, установил тоже 5 версию и все работает; но проблема в том, что для моего текущего проекта я должен использовать QT6. Но у меня вопрос, в каком смысле неясно будущее QT 6? Я волнуюсь; Вы имеете в виду, что проект может быть заброшен или что он нестабилен? Если бы вы сейчас начали новый большой проект, какую версию вы бы использовали?
N0rbert avatar
флаг zw
В настоящее время Qt6 не поддерживается в Debian. Это означает, что будущее Qt6 туманно. Если вы планируете поставлять свое приложение в Ubuntu и Debian, вы должны выбрать поддерживаемую версию Qt — в Ubuntu 20.04 LTS это 5.12, в Debian вы не можете получить версию Qt выше [5.15] (https://packages.debian. org/search?suite=all&section=all&arch=any&searchon=names&keywords=qt+base+dev). Если вы планируете разрабатывать его как AppImage, вы, без сомнения, можете использовать Qt6, ИМХО.
Archimede avatar
флаг es
Ах хорошо, теперь я понимаю. Помимо операционной системы (я мог выбрать любую, также Mac/Win), если бы вы сейчас начинали большой проект, какую версию вы бы использовали? Спасибо!
N0rbert avatar
флаг zw
Последняя зрелая и стабильная версия, что-то вроде 5.x.
Archimede avatar
флаг es
Хорошо, большое спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.