首页 > 技术知识 > 正文

(一个比设计模式高级又好用的框架)

编译经验: 系统环境变量,cmake,mingw的路径 cmake版本问题。选择x64位的。 一,下载CKT_Master

https://gitee.com/mirrors/ctk.git

安装CMake

https://cmake.org/

下载CTKData

https://github.com/commontk/CTKData

1>配置cmake

cmake只是一个配置工作,真正编译修改配置编译器。 移植与编译CTK框架(Qt敏捷开发高级货)

配置CTK

在 Github – CTK 上下载 CTK 源码,然后解压缩。 使用 Qt Creator 打开 CTK-master/CMakeLists.txt,Kit 选择上面配置的 CMake:

移植与编译CTK框架(Qt敏捷开发高级货)1 点击“Configure Project”按钮,开始配置项目。

兼容 Qt5

移植与编译CTK框架(Qt敏捷开发高级货)2

CTKData 错误

在构建 CTK 时,通过底部“编译输出”窗口可以发现,需要从 git 上克隆 CTKData,倘若此过程出现错误: 移植与编译CTK框架(Qt敏捷开发高级货)3

则可以手动从 CTKData 上下载,然后将 CTKData 放到一个固定的位置(例如:放到 CTK-master 目录中),并在 CTK-master/CMakeExternals/CTKData.cmake 中指定它的位置: 移植与编译CTK框架(Qt敏捷开发高级货)4

这样,既可以解决错误,也不必担心每次构建时都从网上克隆了。

编译开关控制

如果使用默认配置,有些库/插件是不会生成的,因为它们的开关被设置为 OFF。

所以,要生成 CTKPluginFramework.dll、CTKWidgets.dll(其它库类似),则需要修改 CTK-master/CMakeLists.txt,将它们的开关设置为 ON: 移植与编译CTK框架(Qt敏捷开发高级货)5

此外,还有一些核心插件也需要手动打开才能生成(例如:EventAdmin,它是插件间通信的核心): 移植与编译CTK框架(Qt敏捷开发高级货)6

安装

默认情况下,CTK 在编译时是不会自动安装的,打开 CTK-master/SuperBuild.cmake 可以看到: INSTALL_COMMAND “”

为了便于后续使用,建议加上安装步骤: 移植与编译CTK框架(Qt敏捷开发高级货)7

编译成功

移植与编译CTK框架(Qt敏捷开发高级货)8

使用CTKWidgets

简述:

CTKWidgets包含了一组Qt组件,用于生物医学成像应用程序 。 很多的部件具有参考意义

在CTK源码中,有很多选项开关, 以控制你想要编译的内容(详见第四篇:《编译 CTK》),其中就包含了 CTKWidgets。CTKWidgets 的构成

根据 CTKWidgets 文档 描述,CTKWidgets 主要包含 5 部分:

Plans for widgets:收集了所需部件类型的一些想法和示例,包括:通用部件、科学部件、可视化部件、2D/3D 交互式部件、医疗成像部件、特定于应用程序的部件。

Image Gallery:介绍了各个部件及其效果图

Transfer function widgets:介绍了支持 VTK 函数的部件。

Workflow widgets:介绍了工作流相关内容,包括:工作流类、定义工作流的步骤、

ctkWorkflow 的状态图、ctkWorkflowWidget 中的 GUI 实现。

Popup widgets:一个弹出部件,可以在适当时显示,当不想要时,可以隐藏起来。

创建项目

CTKWidgets 库使用起来相当简单,和其他第三方库一样。

工程文件 .pro 如下所示:

QT += core gui widgets

TARGET = UseCTKWidgets

TEMPLATE = app

CTK 安装路径

CTK_INSTALL_PATH = $$PWD/../../CTKInstall

CTK 相关库所在路径(例如:CTKCore.lib、CTKWidgets.lib)

CTK_LIB_PATH = $$CTK_INSTALL_PATH/lib/ctk-0.1

CTK 相关头文件所在路径(例如:ctkPluginFramework.h)

CTK_INCLUDE_PATH = $$CTK_INSTALL_PATH/include/ctk-0.1

相关库文件(CTKCore.lib、CTKWidgets.lib)

LIBS += -L$$CTK_LIB_PATH -lCTKCore -lCTKWidgets

INCLUDEPATH += $$CTK_INCLUDE_PATH

SOURCES += main.cpp

注意: 除了包含库文件之外,还需要包含库相关的路径。由于每个人的安装位置不一样,所以这里的路径可能需要更改。

现在,可以根据 CTKWidgets 中的部件,来实现想要的效果了。

猜你喜欢