网站托管解决方案,电商设计图,百度公司官网,新网站如何做seo优化文章目录 参考原文一、下载KDChart源文件二、下载安装CMake三、编译Qt5.15.0 编译Qt6.x 编译使用Qt6.X编译的直接看这最快 四、使用测试方法一#xff1a;测试方法二#xff1a; 参考原文 记录我的KDChart3.0编译过程 系统#xff1a;win11#xff0c;Qt5.15 #xff0c;编… 文章目录 参考原文一、下载KDChart源文件二、下载安装CMake三、编译Qt5.15.0 编译Qt6.x 编译使用Qt6.X编译的直接看这最快 四、使用测试方法一测试方法二 参考原文 记录我的KDChart3.0编译过程 系统win11Qt5.15 编译器mingw 64位 版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。 注意KDChart3.0要求QT5.15及以上版本
本文使用Qt6.4.3编译使用QT5.15建议阅读记录我的KDChart3.0编译过程如果无法阅读本文也有QT5.15编译。
一、下载KDChart源文件
打开官网https://www.kdab.com/development-resources/qt-tools/kd-chart/
拉到最下面 下载源文件然后解压。 查看文件夹里的INSTALL.txt可以看到需要CMake编译。 中文版
这些是使用CMake构建系统安装KD Chart的说明。
需要使用CMake版本3.3或更高版本。Qt版本支持KD Chart 2.5.0或以下版本需要Qt4
KD Chart 2.5.1到2.7.2需要Qt4到Qt5.15
KD Chart 2.8.x删除了Qt4支持即仅限Qt5
KD Chart 3.0或更高版本需要Qt5.15.0到Qt6.x 如果需要支持旧版Qt5请发送邮件至infokdab.com
请注意Qt6构建需要符合C17标准的编译器而Qt5构建可以通过C11标准。请参阅CMakeLists.txt顶部的注释以获取可传递给cmake的可用配置选项。Windows上的安装目录默认为c\ KDAB \ KDChart-version
非Windows平台默认为/usr/local/KDAB/KDChart-version。
您可以通过传递选项 -DCMAKE_INSTALL_PREFIX/install/path 给cmake来更改此位置。1从您的KD Chart安装的顶级目录创建一个构建目录mkdir build并切换到该构建目录cd build2现在根据所需的构建类型运行cmake之一
cmake -DCMAKE_BUILD_TYPEDebug ..
cmake -DCMAKE_BUILD_TYPERelease ..
cmake -DKDChart_STATICTrue -DCMAKE_BUILD_TYPEDebug ..
cmake -DKDChart_STATICTrue -DCMAKE_BUILD_TYPERelease ..要定义用于安装位置请使用以下命令
cmake -DCMAKE_BUILD_TYPEDebug -DCMAKE_INSTALL_PREFIXC:/kdchart ..
cmake -DCMAKE_BUILD_TYPEDebug -DCMAKE_INSTALL_PREFIX/opt/kdchart ..3Unix
将LD_LIBRARY_PATH设置为指向KD Chart安装的lib目录。 如果您尚未设置LD_LIBRARY_PATH则在终端中运行
% LD_LIBRARY_PATH/path/to/kdchart/lib:$LD_LIBRARY_PATH
% export LD_LIBRARY_PATH上述内容必须添加到您的.bashrc或类似文件中以保持。当然也可以在构建使用KD Reports的软件之前从shell中运行
但在这种情况下您的设置仅在此shell中可用。4MacOS
按照上述描述进行操作但使用DYLD_LIBRARY_PATH而不是LD_LIBRARY_PATH5Windows
对于运行可执行文件请将KD Chart dll (kdchart\bin)路径添加到PATH中。例如set PATH\path\to\kdchart\bin;%PATH%
对于开发请将KD Chart lib (kdchart\lib)路径添加到LIB环境变量中。例如set LIB\path\to\kdchart\lib;%LIB%6通过键入以下内容构建所有内容从您的顶级KD Chart目录运行% make # Unix, Mac
% nmake # Windows7可选安装KD Chart从您的顶级KD Reports目录运行% make install # Unix, Mac
% nmake install # Windows这将把必需的文件复制到安装路径的子目录中
对于Unix / LinuxMac/usr/local/KDAB/KDChart-VERSION /
对于Windows这是C\ KDAB \ KDChart-VERSION \8查看示例应用程序它们将帮助您入门KD Chart。测试
要构建测试工具包请向CMake传递-DKDChart_TESTStrue如下所示
% cmake -DKDChart_TESTStrue然后运行make test来运行单元测试。使用
从您的CMake项目中添加find_package(KDChart CONFIG REQUIRED)或Qt6的情况下find_package(KDChart-qt6 CONFIG REQUIRED)并链接到导入的目标KDChart :: kdchart。
这就是您需要做的全部导入的目标还带有包含目录。根据您安装KDChart的位置您可能还需要指定CMAKE_PREFIX_PATH环境变量。二、下载安装CMake 注意 如果使用Qt6.x 编译可以不用安装Qt6自带CMake还不用配置直接看 三、编译 - Qt6.x 编译 CMake下载https://cmake.org/download/ 我根据自己的系统选了安装版。
安装时基本都默认设置。可以把桌面图标勾上。 三、编译
我们先创建两个文件夹用来放cmake编译文件。
我把文件夹放在kdchart源文件下面了。 接着打开刚安装的cmake。 填写源文件目录和build文件夹目录。 点击Configure。 选择编译器并指定本地目录。 要选择Qt安装目录下的编译器地址。 点击Finish提示找不到文件。 Qt5.15.0 编译 消息框提示这两个文件找不到。这个文件是在安装目录下的这个位置。注意地址里的编译器版本。 把地址填到CMake软件中的Qt5_DIR这项 然后再点Configure。依然报错这次少了Qt5sql。 填入地址 再点Configure。这次窗口不红了不报错了。
Qt6.x 编译 没有找到 Qt6Config.cmake qt6-config.cmake填写Qt6_DIR,再点Configure 没有找到 Qt6CoreToolsConfig.cmake qt6coretools-config.cmake填写Qt6GuiTools_DIR,再点Configure CMake允许设置 Qt6_DIR 在不交叉编译时查找包 解决办法 1.设置Qt6_close不足以查找Qt包 2.c CMake在Qt6安装中找不到软件包 还有一篇文章使用方法是 设置 QT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH QT_ADDITIONAL_PACKAGES_PREFIX_PATH 但是我没有成功 使用Qt6.X编译的直接看这最快 直接使用QT6自带的cmake-gui(QT\6.x\Tools\CMake_64\bin\cmake-gui)
先点击Configure不报错点击Generate。 选择需要的build版本debug或release。我这次选择release的debug版本已经编译过了。 往下翻这是install文件夹可以更改为喜欢的位置但请记住它。 改好后点击Generate。 成功了。 以管理员身份打开CMD窗口cd到刚才的build文件夹。 切换到非C盘如F盘
C:\ F:
F:\ cd xxx输入命令 mingw32-make.exe
这里一定是mingw32不要因为是64位编译器就填64了。 按回车。编译蛮久的等一会儿。
完成以后再输入mingw32-make.exe install 完成后来到install文件夹。 这样就编译好了。
主要是要用到这些文件。 Qt5.15.0 编译得到 “C:\Program Files (x86)\KDChart\bin\libkdchart3.dll”
“C:\Program Files (x86)\KDChart\lib\libkdchart3.dll.a”
“C:\Program Files (x86)\KDChart\include\KDChart” Qt6.x 编译得到 “C:/Program Files (x86)/KDChart/lib/libkdchart-qt63.dll.a” “C:/Program Files (x86)/KDChart/bin/libkdchart-qt63.dll”
“C:/Program Files (x86)/KDChart/include/KDChart”
四、使用
把编译好的头文件库文件保存到工程目录下。
debug的库文件是libkdchart3d.dll、libkdchart3d.dll.a/我没编debug
release的库文件是libkdchart3.dll、libkdchart3.dll.a/libkdchart-qt63.dll、libkdchart-qt63.dll.a
我们新建一个Qt项目运行一下。
测试方法一
把对应版本的文件放到工程目录下。 然后再.pro文件中添加这些头文件和库。 抄一段官方文档给的例子。https://docs.kdab.com/kdchart/latest/
#include mainwindow.h
#include QApplication
#include KDChartWidgetint main(int argc, char *argv[]){QApplication a(argc, argv); // 创建应用程序对象MainWindow w;// 创建主窗口对象w.show(); // 显示主窗口KDChart::Widget widget; // 创建KDChart部件对象widget.resize( 600, 600 ); // 设置部件大小QVector qreal vec0, vec1, vec2; // 创建三个数据集的容器vec0 -5 -4 -3 -2 -1 0 1 2 3 4 5; // 向vec0添加数据点vec1 25 16 9 4 1 0 1 4 9 16 25; // 向vec1添加数据点vec2 -125 -64 -27 -8 -1 0 1 8 27 64 125; // 向vec2添加数据点widget.setDataset( 0, vec0, Linear ); // 将vec0与标签Linear关联并添加到部件中widget.setDataset( 1, vec1, Quadratic ); // 将vec1与标签Quadratic关联并添加到部件中widget.setDataset( 2, vec2, Cubic ); // 将vec2与标签Cubic关联并添加到部件中widget.show(); // 显示曲线图部件return a.exec(); // 启动应用程序的事件循环
}运行。 测试方法二 使用Qt Creator打开下载的KDChart源码的官方例子KDChart-kdchart-3.0\tests\Gantt\apireview
在Qt Creator打开CMakeLists.txt补充如下
##
# This file is part of the KD Chart library.
#
# SPDX-FileCopyrightText: 2019-2023 Klarälvdalens Datakonsult AB, a KDAB Group company infokdab.com
#
# SPDX-License-Identifier: MIT
#
# 指定所需的最低CMake版本为3.5
cmake_minimum_required(VERSION 3.5)#定义项目名称为18qt6-cmake指定项目版本为0.1使用的编程语言为C。
project(Ganttapireview-manual-test VERSION 0.1 LANGUAGES CXX)set(CMAKE_AUTOUIC ON) #启用自动UI编译
set(CMAKE_AUTOMOC ON) #启用自动MOCMeta-Object Compiler
set(CMAKE_AUTORCC ON) #启用自动RCCResource Compilerset(CMAKE_CXX_STANDARD 11) #设置C标准为C11#要求使用指定的C标准
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 指定要链接的动态库的路径
link_directories(C:/Program Files (x86)/KDChart/lib/)#查找Qt库并指定需要的组件为Widgets。它会根据可用的Qt版本自动查找并设置Qt变量
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets PrintSupport)#根据主要Qt版本号查找并设置所需的Qt Widgets组件
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets PrintSupport)#定义项目源文件列表
set(PROJECT_SOURCESentrydelegate.cppentrydialog.cppentrydialog.uimain.cppmainwindow.cppmainwindow.ui
)#如果Qt主要版本大于等于6则使用qt_add_executable创建目标
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)qt_add_executable(Ganttapireview-manual-testMANUAL_FINALIZATION${PROJECT_SOURCES})
# 否则根据不同的平台和Qt版本使用add_library或add_executable创建目标
else()#安卓if(ANDROID)add_library(Ganttapireview-manual-test SHARED${PROJECT_SOURCES})
# 在Qt 5中定义find_package()调用后的Android属性:
# set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)else()add_executable(Ganttapireview-manual-test${PROJECT_SOURCES})endif()
endif()#将Qt Widgets库链接到目标
target_link_libraries(Ganttapireview-manual-testPRIVATE Qt${QT_VERSION_MAJOR}::WidgetsQt${QT_VERSION_MAJOR}::PrintSupport# 生成的库名称kdchart-qt63#kdchart#testtools
)# 要链接的动态库的头文件include路径添加到目标文件中
target_include_directories(Ganttapireview-manual-testPRIVATE C:/Program Files (x86)/KDChart/include/KDChart-qt6)#设置目标属性如MacOSX Bundle标识符、版本等
set_target_properties(Ganttapireview-manual-test PROPERTIESMACOSX_BUNDLE_GUI_IDENTIFIER my.example.comMACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}MACOSX_BUNDLE TRUEWIN32_EXECUTABLE TRUE
)#安装目标文件
install(TARGETS Ganttapireview-manual-testBUNDLE DESTINATION .LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})#如果主要Qt版本为6则使用qt_finalize_executable完成目标的最终设置
if(QT_VERSION_MAJOR EQUAL 6)qt_finalize_executable(Ganttapireview-manual-test)
endif()构建选择Release/Debug运行根据生成的库
甘特图