Я не могу импортировать один файл qml в другой, то же самое отражение в CMake при настройке проекта Qt QML.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Я не могу импортировать один файл qml в другой, то же самое отражение в CMake при настройке проекта Qt QML.

Сообщение Anonymous »

Когда я только создаю проект и пишу cmake, все идет хорошо, когда я начинаю добавлять новые qml файлы и потом выполнять настройку, то вылезает 2 предупреждения:

Код: Выделить всё

 CMake Warning (dev) at /home/zxctatar/Qt/6.8.0/gcc_64/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:3378 (message):
Qt policy QTP0004 is not set: You need qmldir files for each extra
directory that contains .qml files for your module.  Check
https://doc.qt.io/qt-6/qt-cmake-policy-qtp0004.html for policy details.
Use the qt_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
/home/zxctatar/Qt/6.8.0/gcc_64/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:3238
(__qt_internal_setup_policy)
/home/zxctatar/Qt/6.8.0/gcc_64/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:891
(qt6_target_qml_sources)
/home/zxctatar/Qt/6.8.0/gcc_64/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake:1148
(qt6_add_qml_module)   CMakeLists.txt:15 (qt_add_qml_module) This
warning is for project developers.  Use -Wno-dev to suppress it.
Я уже переходил по этой ссылке, но никакой полезной информации для себя не нашел (может плохо искал), но понял, что все дело в qmldir, с этим боролся это было давно, но все равно ничего не вышло, на данный момент файл CMake и расположение файлов выглядят так:

CMakeLists.txt

CMakeLists.txt.user

├──build\

├──src\

│ ├──styles\

│ │ └──Colors.qml

├──просмотр\

│ ├──loginwindow\

│ │ │ └──LoginWindow.qml

├──main.cpp\

Код: Выделить всё

cmake_minimum_required(VERSION 3.16)

project(Client VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 6.5 REQUIRED COMPONENTS Quick)

qt_standard_project_setup(REQUIRES 6.5)

qt_add_executable(appClient
src/main.cpp
)

qt_add_qml_module(appClient
URI Client
VERSION 1.0
QML_FILES

QML_FILES src/view/loginwindow/LoginWindow.qml
QML_FILES src/styles/Colors.qml
)

# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appClient PROPERTIES
#    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appClient
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)

target_link_libraries(appClient
PRIVATE Qt6::Quick
)

include(GNUInstallDirs)
install(TARGETS appClient
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
Также есть проблема с импортом одного qml файла в другой, в данном случае Colors в LoginWindow, когда указываю путь к файлу проект собирается, но при запуске выдает следующая ошибка:

Код: Выделить всё

qrc:/qt/qml/Client/src/view/loginwindow/LoginWindow.qml:3:1: "../../styles/Colors.qml": no such directory
LoginWindow.qml

Код: Выделить всё

import QtQuick 2.15
import QtQuick.Controls
import "../../styles/Colors.qml" as Colors

ApplicationWindow {
visible: true

color: Colors.backgroundColor
}
Colors.qml

Код: Выделить всё

pragma Singleton
import QtQuick 2.15

QtObject {
property color backgroundColor: "#DDEFFF"
}
Я также пытался использовать файлы qmldir и qrc, но ничего не помогло, возможно, я сделал что-то не так
Я все еще пытаюсь разобраться в QML и CMake, я потратил почти два дня на поиск проблемы, так что если это глупая ситуация, не будьте строгими, буду благодарен за любую помощь
OC: Ubuntu 24.04 .1 LTS

Подробнее здесь: https://stackoverflow.com/questions/792 ... -when-sett
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»