CTK框架——CTK Widgets快速入门「建议收藏」

CTK框架——CTK Widgets快速入门「建议收藏」CTK框架——CTKWidgets快速入门天山老妖S关注0人评论27888人阅读2018-05-2518:40:52CTK框架——CTKWidgets快速入门一、CTKWidgets模块简介1、CTKWidgets模块简介CTKWidgets模块是CTK封装的用于通用功能以及生物医学成像专用领域的Qt组件库。CTK中所有部分都有大量的测试相关代码,在源码目录下Libs/xxx/Testin/Cpp目录中。CTK官方文档:http://www.commont.

大家好,又见面了,我是你们的朋友全栈君。

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部分:
CTK框架——CTK Widgets快速入门
A、DICOM Widgets:用于支持医学数字影像通信(DICOM)领域的应用
CTK框架——CTK Widgets快速入门
B、Visualization VTK Widgets:支持VTK的组件
CTK框架——CTK Widgets快速入门
C、Widgets:通用的功能组件
CTK框架——CTK Widgets快速入门
CTK框架——CTK Widgets快速入门
CTK框架——CTK Widgets快速入门
CTK框架——CTK Widgets快速入门
CTK框架——CTK Widgets快速入门
D、XNAT Widgets:支持XNAT的组件
目前只包含一个类ctkXnatLoginDialog。
XNAT是华盛顿大学神经信息学研究小组开发的开源成像信息平台,最初在华盛顿大学的巴克纳实验室开发,目前由哈佛大学开发。

二、CTK Widgets快速入门

1、导入CTK Widgets模块

CTKWidgets模块使用与其它第三方库一样。
创建一个QtGUI应用并在工程文件中加入CTKWidgets模块。

QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = HelloCTKWidget TEMPLATE = 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.1 LIBS += -L$$CTK_LIB_PATH -lCTKCore -lCTKWidgets INCLUDEPATH += $$CTK_INCLUDE_PATH SOURCES += main.cpp\ Widget.cpp HEADERS += Widget.h

2、使用CTK Widgets模块中的组件

#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QGridLayout> #include <ctkCheckablePushButton.h> #include <ctkCollapsibleButton.h> #include <ctkColorPickerButton.h> #include <ctkRangeWidget.h> #include <ctkCollapsibleGroupBox.h> #include <ctkCoordinatesWidget.h> #include <ctkTreeComboBox.h> #include <ctkSearchBox.h> #include <ctkDirectoryButton.h> #include <ctkCheckableComboBox.h> #include <ctkMaterialPropertyWidget.h> #include <ctkMatrixWidget.h> #include <ctkPathLineEdit.h> class Widget : public QWidget { Q_OBJECT public: 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 <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); }

3、CTK Widgets应用编译结果

CTK框架——CTK Widgets快速入门

4、CTK Widgets学习示例

CTK Widgets测试代码位于CTK/Libs/Widgets/Testing/Cpp中,可以作为学习示例。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146181.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pandas一键爬取解析代理IP与代理IP池的维护

    Pandas一键爬取解析代理IP与代理IP池的维护本文的目标是至少演示如下技术:1.pandas超简代码带请求头解析表格2.查看访问IP的方法3.搭建简易检验代理Ip的网站4.Redis数据库的基本操作5.代理ip在request库中的使用方法6.Timer定时器的使用7.Redis图形化工具的使用介绍…

    2022年10月25日
  • Redis从青铜到王者,从环境搭建到熟练使用,看这一篇就够了,超全整理详细解析,赶紧收藏吧!!!

    Redis从青铜到王者,从环境搭建到熟练使用,看这一篇就够了,超全整理详细解析,赶紧收藏吧!!!一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令五、BITMAP位图六、Redis的数据模型七、Redis持久化八、idea使用Jedis连接Redis

    2022年5月10日
  • 宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程[通俗易懂]

    宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程[通俗易懂]目录1.宽度学习(BroadLearningSystem)2.MNIST数据集3.复刻MNIST数据集的预处理及训练过程1.宽度学习(BroadLearningSystem)对宽度学习的理解可见于这篇博客宽度学习(BroadLearningSystem)_颹蕭蕭的博客-CSDN博客_宽度学习这里不再做详细解释2.MNIST数据集mnist数据集官网(下载地址):MNISThandwrittendigitdatabase,YannLeCun,Cori

    2022年5月21日
  • 汉罗塔问题的递归实现「建议收藏」

    汉罗塔问题的递归实现「建议收藏」#includeusingnamespacestd;voidmove(intm,chara,charb);voidhanoi(intm,charone,chartwo,charthree);intmain(){  chararray[10]={‘A’,’B’,’C’,’D’,’E’,’F’};  hanoi(4,’A’,’B’,’C’);

    2022年10月12日
  • 设置时区定位可以关闭吗_监控时区设置是什么意思

    设置时区定位可以关闭吗_监控时区设置是什么意思mysql的驱动jar包升级到了8.0版本以上。升级后从mysql中查出的时候,全都比数据库的时间多13小时,而且这些时间存到数据库的时间,有些是正确的时间,有时比正确时间少13小时,这样返回给前端的时间就不准确,解决这个问题只要在springboot的数据库连接配置中增加一段配置就能解决问题。这个时区要设置好,不然会出现时差,如果你设置serverTimezone=UTC,连接不报错,但是我们在用java代码插入到数据库时间的时候却出现了问题。比如在java代码里面插入的时间为:2021-0.

    2022年9月25日
  • es6数组的flat()方法

    es6数组的flat()方法Array.prototype.flat()flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。Array.prototype.flat()用于将嵌套的数组“扁平化”,将二维数组变成一维数组。该方法返回一个新数组,对原数据没有影响。语法:varnewArray=arr.flat([depth])参数:depth可选,指定要提取嵌套数组的结构深度,默认值为1。返回值:一个包含数组与子数组中所有元素的新数组。示例:var

    2022年5月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号