CTK框架——CTK Widgets快速入门
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,CTK框架--CTK Widgets快速入门一、CTK Widgets模块简介1、CTK Widgets模块简介CTK Widgets模块是CTK封装的用于通用功能以及生物医学成像专用领域的Qt组件库
千家信息网最后更新 2026年11月01日CTK框架——CTK Widgets快速入门
CTK框架--CTK Widgets快速入门
一、CTK Widgets模块简介
1、CTK Widgets模块简介
CTK Widgets模块是CTK封装的用于通用功能以及生物医学成像专用领域的Qt组件库。
CTK中所有部分都有大量的测试相关代码,在源码目录下Libs/xxx/Testin/Cpp目录中。
CTK官方文档:
http://www.commontk.org/docs/html/modules.html
ImageGallery演示了CTK Widgets模块大部分组件的效果:
http://www.commontk.org/index.php/Documentation/ImageGallery
2、CTK Widgets构成
CTK Widgets模块主要包含4部分:
A、DICOM Widgets:用于支持医学数字影像通信(DICOM)领域的应用
B、Visualization VTK Widgets:支持VTK的组件
C、Widgets:通用的功能组件
D、XNAT Widgets:支持XNAT的组件
目前只包含一个类ctkXnatLoginDialog。
XNAT是华盛顿大学神经信息学研究小组开发的开源成像信息平台,最初在华盛顿大学的巴克纳实验室开发,目前由哈佛大学开发。
二、CTK Widgets快速入门
1、导入CTK Widgets模块
CTKWidgets模块使用与其它第三方库一样。
创建一个QtGUI应用并在工程文件中加入CTKWidgets模块。
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = HelloCTKWidgetTEMPLATE = app#CTK安装路径CTK_INSTALL_PATH = /usr/local/CTK#CTK插件相关库所在路径CTK_LIB_PATH = $$CTK_INSTALL_PATH/lib/ctk-0.1#CTK插件相关头文件所在路径CTK_INCLUDE_PATH = $$CTK_INSTALL_PATH/include/ctk-0.1LIBS += -L$$CTK_LIB_PATH -lCTKCore -lCTKWidgetsINCLUDEPATH += $$CTK_INCLUDE_PATH SOURCES += main.cpp\ Widget.cppHEADERS += Widget.h2、使用CTK Widgets模块中的组件
#ifndef WIDGET_H#define WIDGET_H#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = 0) { m_layout = new QGridLayout(this); //复选按钮 m_ctkCheckableButton = new ctkCheckablePushButton(this); m_ctkCheckableButton->setText("ctkCheckablePushButton"); //可折叠按钮 m_ctkCollapsibleButton = new ctkCollapsibleButton(this); m_ctkCollapsibleButton->setText("ctkCollapsibleButton"); m_layout->addWidget(m_ctkCheckableButton, 0, 0, 1, 2); m_layout->addWidget(m_ctkCollapsibleButton, 0, 2, 1, 2); //颜色拾取器 m_ctkColorPickerButton = new ctkColorPickerButton(this); m_ctkColorPickerButton->setText("ctkColorPickerButton"); //滑块 m_ctkRangeWidget = new ctkRangeWidget(this); m_layout->addWidget(m_ctkColorPickerButton, 1, 0, 1, 2); m_layout->addWidget(m_ctkRangeWidget, 1, 2, 1, 2); //分组框 m_ctkCollapsibleGroupBox = new ctkCollapsibleGroupBox(this); m_ctkCollapsibleGroupBox->setTitle("GroupBox"); m_layout->addWidget(m_ctkCollapsibleGroupBox, 3, 0, 3, 4); //坐标组件 m_ctkCoordinatesWidget = new ctkCoordinatesWidget(this); //树形组合狂 m_ctkTreeComboBox = new ctkTreeComboBox(this); m_ctkTreeComboBox->addItems(QStringList() << "A" << "B"); m_layout->addWidget(m_ctkCoordinatesWidget, 6, 0, 1, 2); m_layout->addWidget(m_ctkTreeComboBox, 6, 2, 1, 2); //搜索框 m_ctkSearchBox = new ctkSearchBox(this); //目录按钮 m_ctkDirectoryButton = new ctkDirectoryButton(this); m_layout->addWidget(m_ctkSearchBox, 7, 0, 1, 2); m_layout->addWidget(m_ctkDirectoryButton, 7, 2, 1, 2); //带复选功能的组合框 m_ctkCheckableComboBox = new ctkCheckableComboBox(this); m_ctkCheckableComboBox->addItems(QStringList() << "A" << "B"); //路径行编辑框 m_ctkPathLineEdit = new ctkPathLineEdit(this); m_ctkPathLineEdit->addCurrentPathToHistory(); m_layout->addWidget(m_ctkCheckableComboBox, 8, 0, 1, 2); m_layout->addWidget(m_ctkPathLineEdit, 8, 2, 1, 2); //材料属性组件 m_ctkMaterialPropertyWidget = new ctkMaterialPropertyWidget(this); //矩阵组件 m_ctkMatrixWidget = new ctkMatrixWidget(this); m_layout->addWidget(m_ctkMaterialPropertyWidget, 9, 0, 1, 2); m_layout->addWidget(m_ctkMatrixWidget, 9, 2, 1, 2); setLayout(m_layout); }private: QGridLayout* m_layout; ctkCheckablePushButton* m_ctkCheckableButton; ctkCollapsibleButton* m_ctkCollapsibleButton; ctkColorPickerButton* m_ctkColorPickerButton; ctkRangeWidget* m_ctkRangeWidget; ctkCollapsibleGroupBox* m_ctkCollapsibleGroupBox; ctkCoordinatesWidget* m_ctkCoordinatesWidget; ctkTreeComboBox* m_ctkTreeComboBox; ctkSearchBox* m_ctkSearchBox; ctkDirectoryButton* m_ctkDirectoryButton; ctkCheckableComboBox* m_ctkCheckableComboBox; ctkMaterialPropertyWidget* m_ctkMaterialPropertyWidget; ctkMatrixWidget* m_ctkMatrixWidget; ctkPathLineEdit* m_ctkPathLineEdit;};#endif // WIDGET_H #include "Widget.h"#include int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();} 3、CTK Widgets应用编译结果
4、CTK Widgets学习示例
CTK Widgets测试代码位于CTK/Libs/Widgets/Testing/Cpp中,可以作为学习示例。
模块
组件
功能
按钮
目录
路径
应用
开发
支持
代码
信息
医学
所在
插件
文件
示例
简介
部分
领域
华盛顿大学
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
山东特亿宝互联网科技有限公司
科技与互联网发展
万达互联网科技
互联网 新科技
重庆科技学院互联网
华中科技有哪些互联网大佬
承德科技产业互联网发展
注册互联网科技公司经营范围大全
广州市恰铎互联网科技有限公司
996高科技互联网公司
佛山市拉法互联网科技有限公司
元气玛特互联网科技公司是外包吗
梅州GM互联网络科技有限公司
江苏互联网智能科技软件
有人说阿里系是互联网科技企业
上海万顺科技互联网有限公司招聘
科技和互联网行业的特点
互联网科技大佬云集
杭州科技互联网公司有哪些
互联网新科技
江苏根荣互联网科技
互联网科技股票
极限挑战互联网科技
深圳艾佳互联网科技
互联网科技大会案例
互联网科技公司需要的职位
福州新华互联网科技学校 知乎
互联网公司高科技产品
互联网科技数字货币