使用 CTKWidgets
来源:互联网 发布:北京中科院理化所知乎 编辑:程序博客网 时间:2024/05/24 06:40
简述
CTKWidgets 包含了一组 Qt 部件,用于生物医学成像应用程序。当然,即使你的程序与医学无关,很多部件也是很有参考意义的。
通过完成 编译 CTK 中的所有步骤,可以看到,生成了很多有用的库,其中就包含 CTKWidgets。
- 简述
- CTKWidgets 的构成
- 使用 CTKWidgets
- CTKWidgets 测试
版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820
CTKWidgets 的构成
根据 CTKWidgets 文档 描述,CTKWidgets 主要包含 5 部分:
- Plans for widgets:收集了所需部件类型的一些想法和示例,包括:通用部件、科学部件、可视化部件、2d/3d 交互式部件、医疗成像部件、特定于应用程序的部件。
- Image Gallery:介绍了各个部件及其效果图
- Transfer function widgets:介绍了支持 VTK 函数的部件
- Workflow widgets:介绍了工作流相关内容,包括:工作流类、定义工作流的步骤、ctkWorkflow 的状态图、ctkWorkflowWidget 中的 GUI 实现。
- Popup widgets:一个弹出部件,可以在适当时显示,当不想要时,可以隐藏起来。
使用 CTKWidgets
有了 CTKWidgets 库,使用起来相当简单,和其他第三方库一样。
工程文件 *.pro
如下所示:
QT += core gui widgetsTARGET = ExampleTEMPLATE = appLIBS += -L$$PWD/Libs -lCTKWidgetsINCLUDEPATH += \ $$PWD/../../CTK-master/Libs/Core \ $$PWD/../../CTK-master/Libs/WidgetsSOURCES += main.cpp
注意: 除了包含库文件之外,还需要包含库相关的路径。
现在,可以根据 CTKWidgets 中的部件,来实现想要的效果了。
main.cpp
如下所示:
// Qt includes#include <QApplication>#include <QFormLayout>#include <QVBoxLayout>// CTK includes#include <ctkCheckablePushButton.h>#include <ctkCollapsibleButton.h>#include <ctkColorPickerButton.h>#include <ctkRangeWidget.h>int main(int argc, char* argv[]){ QApplication app(argc, argv); QWidget topLevel; QVBoxLayout* topLevelLayout = new QVBoxLayout; ctkCollapsibleButton buttons("Buttons"); QFormLayout* buttonsLayout = new QFormLayout; buttonsLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); topLevelLayout->addWidget(&buttons); ctkCheckablePushButton checkablePushButton; checkablePushButton.setText("Checkable"); buttonsLayout->addRow("ctkCheckablePushButton", &checkablePushButton); ctkColorPickerButton colorPickerButton; colorPickerButton.setColor(QColor("#9e1414")); buttonsLayout->addRow("ctkColorPickerButton", &colorPickerButton); buttons.setLayout(buttonsLayout); ctkCollapsibleButton sliders("Sliders"); QFormLayout* slidersLayout = new QFormLayout; topLevelLayout->addWidget(&sliders); ctkRangeWidget rangeWidget; slidersLayout->addRow("ctkRangeWidget", &rangeWidget); sliders.setLayout(slidersLayout); topLevel.setLayout(topLevelLayout); topLevel.show(); return app.exec();}
在编译过程中,有可能会出现错误:
E:\CTK-master\Libs\Widgets\ctkPushButton.h:30: error: C1083: 无法打开包括文件: “ctkWidgetsExport.h”: No such file or directory
这是因为,CTKWidgets 是一个动态库,其中的类被导出了,而 ctkWidgetsExport.h
正是定义导入/导出相关的头文件。
进入 CTK-build/Libs/Widgets
(CTK 构建目录),将 ctkWidgetsExport.h
拷贝至 CTK-master/Libs/Widgets
(CTK 源码目录),再次编译,完美运行!
CTKWidgets 测试
CTK 中的所有部分都有大量的测试相关代码,在模块中的 Testing
目录中。
以 CTKWidgets 为例,测试代码位于 CTK-master/Libs/Widgets/Testing/Cpp
中。
如果不会使用 CTK,可以先试试其中的测试代码,可以当做示例来用。
测试相关文档,参考:Widget testing
- 使用 CTKWidgets
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用++,--
- 使用$@ $!
- 使用
- SoftICE使用(指令使用)
- 使用GraphEdit使用
- 使用HtmlParser使用心得
- 时钟使用使用
- Ubuntu 使用Git 使用
- Ubuntu 使用Git 使用
- GUID使用的使用
- Git使用 tortoisegit使用
- 长达一个月的海外购物节?你准备好买遍全世界了吗
- 瓜子+毛豆, 一盘“下酒菜”如何撬动汽车新零售
- 欢迎使用CSDN-markdown编辑器
- WebUploader 上传的文件与表单接收方法
- 论文下载
- 使用 CTKWidgets
- PTA C实验5 7-10 最佳情侣身高差
- Choice学姐的众数问题
- ext--jsp页面异步
- 残差网络小结
- 安卓平板开机提示“ EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommende”
- Leetcode:292. Nim Game 是否能赢得比赛
- 高阶函数:map、reduce、filter、sorted
- java单例模式