gpt4 book ai didi

cmake - QQuick与CMake : style does not work

转载 作者:行者123 更新时间:2023-12-04 15:32:03 24 4
gpt4 key购买 nike

我愿意在Qt Quick Controls 2中使用样式,并与C++中的CMake项目一起使用。而且我很难使颜色正确。

C++,qml和样式代码来自the qt blog,只要我使用 .pro 项目文件,它就可以正常工作,但是当我转到CMakeLists.txt时,我无法正确设置颜色(我相信它们是默认设置)深色/紫色,而不是深色/橙色)。

.pro 项目中,我的 main.cpp 如下所示:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickStyle>

int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);

QQuickStyle::setStyle("Material");

QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));

return app.exec();
}

我的 qml.qrc 文件看起来像这样:
<!DOCTYPE RCC>
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>CustomLabel.qml</file>
<file>PageBackground.qml</file>
<file>SideBar.qml</file>
<file>SideBarForm.ui.qml</file>
<file>Light.qml</file>
<file>LightForm.ui.qml</file>
<file>Heating.qml</file>
<file>HeatingForm.ui.qml</file>
<file>Security.qml</file>
<file>SecurityForm.ui.qml</file>
<file>qtquickcontrols2.conf</file>
</qresource>
</RCC>

我的 qtquickcontrols2.conf 文件是这样的:
[Controls]
Style=Material

[Universal]
Theme=Dark
Accent=DeepOrange

[Material]
Theme=Dark
Accent=DeepOrange

现在,我的CMake项目文件夹包含完全相同的文件(实际上是 .pro 项目文件夹的副本和粘贴),除了我删除了 .pri .pro 文件之外,现在它包含了 CMakeLists .txt 如下所示:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
cmake_policy(SET CMP0015 NEW)

# Projet.
project(MyQtQuick)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

# Find dependencies.
set(QT_DIR ../DevRoot/Dependencies/Qt/v5.7.0/5.7/gcc_64)

# Prepare project for Qt.
set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories.
set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed.
set(CMAKE_PREFIX_PATH ${QT_DIR})

find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5OpenGL)
find_package(Qt5Quick REQUIRED)
find_package(Qt5Qml REQUIRED)
find_package(Qt5QuickControls2 REQUIRED)

# List sources.
set(${PROJECT_NAME}_sources
main.cpp
)

qt5_add_resources(RCC_SOURCES qml.qrc)

# Headers.
include_directories(
.
)

# Output library.
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_sources})

# Linker.
qt5_use_modules(${PROJECT_NAME} Core Gui OpenGL QuickControls2)

文件 main.cpp qml.qrc 和**** qtquickcontrols2.conf **保持不变(但我必须从 更改的 main.cpp main.qml 的路径除外) qrc:/main.qml”从转换为 “../main.qml”,以** qrc:无法与CMake配合使用-不知道为什么)。

现在,当我编译并执行CMake项目时,我得到了执行的应用程序,但颜色不好,该应用程序将使用默认的深/粉红色呈现,而不是 qtquickcontrols2.conf 中定义的深/橙色。我的 .pro 项目可以编译并顺利运行。

我在互联网上找了好几个小时,找不到任何答案。我还意识到,我可以使用 QQuickView 而不是 QQmlApplicationEngine 来加载我的qml文件(不知道有什么区别,但是我已经测试了备用代码),尽管它没有帮助。

您对我的CMake项目有什么看法吗?

另外(这是一个次要问题):您是否知道为什么在使用CMake项目时无法编写 “qrc:/main.qml” ?在 .pro 项目中,我可以使用 “qrc:/main.qml” ,并且我的qml文件会整齐地列在项目树中的 .qrc 文件下,而使用CMake项目则不是这种情况。

最佳答案

首先只需将其添加到您的cmake文件中

find_package(Qt5 COMPONENTS Core Quick QuickControls2 REQUIRED)

而不是添加这个
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::QuickControls2)

在您的CmakeLists.txt中

关于cmake - QQuick与CMake : style does not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38433375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com