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模塊。

 1 QT       += core gui  2 
 3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  4 
 5 TARGET = HelloCTKWidget  6 TEMPLATE = app  7 
 8 #CTK安裝路徑  9 CTK_INSTALL_PATH = /usr/local/CTK 10 
11 #CTK插件相關庫所在路徑 12 CTK_LIB_PATH = $$CTK_INSTALL_PATH/lib/ctk-0.1
13 
14 #CTK插件相關頭文件所在路徑 15 CTK_INCLUDE_PATH = $$CTK_INSTALL_PATH/include/ctk-0.1
16 
17 LIBS += -L$$CTK_LIB_PATH -lCTKCore -lCTKWidgets 18 
19 INCLUDEPATH += $$CTK_INCLUDE_PATH 20 
21 SOURCES += main.cpp\ 22  Widget.cpp 23 
24 HEADERS  += Widget.h

2、使用CTK Widgets模塊中的組件

 1 #ifndef WIDGET_H  2 #define WIDGET_H
 3 
 4 #include <QWidget>
 5 #include <QGridLayout>
 6 
 7 #include <ctkCheckablePushButton.h>
 8 #include <ctkCollapsibleButton.h>
 9 #include <ctkColorPickerButton.h>
10 #include <ctkRangeWidget.h>
11 #include <ctkCollapsibleGroupBox.h>
12 #include <ctkCoordinatesWidget.h>
13 #include <ctkTreeComboBox.h>
14 #include <ctkSearchBox.h>
15 #include <ctkDirectoryButton.h>
16 #include <ctkCheckableComboBox.h>
17 #include <ctkMaterialPropertyWidget.h>
18 #include <ctkMatrixWidget.h>
19 #include <ctkPathLineEdit.h>
20 
21 class Widget : public QWidget 22 { 23  Q_OBJECT 24 public: 25     Widget(QWidget *parent = 0) 26  { 27         m_layout = new QGridLayout(this); 28         //復選按鈕
29         m_ctkCheckableButton = new ctkCheckablePushButton(this); 30         m_ctkCheckableButton->setText("ctkCheckablePushButton"); 31         //可折疊按鈕
32         m_ctkCollapsibleButton = new ctkCollapsibleButton(this); 33         m_ctkCollapsibleButton->setText("ctkCollapsibleButton"); 34         m_layout->addWidget(m_ctkCheckableButton, 0, 0, 1, 2); 35         m_layout->addWidget(m_ctkCollapsibleButton, 0, 2, 1, 2); 36         //顏色拾取器
37         m_ctkColorPickerButton = new ctkColorPickerButton(this); 38         m_ctkColorPickerButton->setText("ctkColorPickerButton"); 39         //滑塊
40         m_ctkRangeWidget = new ctkRangeWidget(this); 41         m_layout->addWidget(m_ctkColorPickerButton, 1, 0, 1, 2); 42         m_layout->addWidget(m_ctkRangeWidget, 1, 2, 1, 2); 43 
44         //分組框
45         m_ctkCollapsibleGroupBox = new ctkCollapsibleGroupBox(this); 46         m_ctkCollapsibleGroupBox->setTitle("GroupBox"); 47         m_layout->addWidget(m_ctkCollapsibleGroupBox, 3, 0, 3, 4); 48 
49         //坐標組件
50         m_ctkCoordinatesWidget = new ctkCoordinatesWidget(this); 51 
52         //樹形組合狂
53         m_ctkTreeComboBox = new ctkTreeComboBox(this); 54         m_ctkTreeComboBox->addItems(QStringList() << "A" << "B"); 55         m_layout->addWidget(m_ctkCoordinatesWidget, 6, 0, 1, 2); 56         m_layout->addWidget(m_ctkTreeComboBox, 6, 2, 1, 2); 57         //搜索框
58         m_ctkSearchBox = new ctkSearchBox(this); 59         //目錄按鈕
60         m_ctkDirectoryButton = new ctkDirectoryButton(this); 61         m_layout->addWidget(m_ctkSearchBox, 7, 0, 1, 2); 62         m_layout->addWidget(m_ctkDirectoryButton, 7, 2, 1, 2); 63         //帶復選功能的組合框
64         m_ctkCheckableComboBox = new  ctkCheckableComboBox(this); 65         m_ctkCheckableComboBox->addItems(QStringList() << "A" << "B"); 66         //路徑行編輯框
67         m_ctkPathLineEdit = new ctkPathLineEdit(this); 68         m_ctkPathLineEdit->addCurrentPathToHistory(); 69         m_layout->addWidget(m_ctkCheckableComboBox, 8, 0, 1, 2); 70         m_layout->addWidget(m_ctkPathLineEdit, 8, 2, 1, 2); 71         //材料屬性組件
72         m_ctkMaterialPropertyWidget = new ctkMaterialPropertyWidget(this); 73         //矩陣組件
74         m_ctkMatrixWidget = new ctkMatrixWidget(this); 75         m_layout->addWidget(m_ctkMaterialPropertyWidget, 9, 0, 1, 2); 76         m_layout->addWidget(m_ctkMatrixWidget, 9, 2, 1, 2); 77 
78  setLayout(m_layout); 79  } 80 private: 81     QGridLayout* m_layout; 82     ctkCheckablePushButton* m_ctkCheckableButton; 83     ctkCollapsibleButton* m_ctkCollapsibleButton; 84     ctkColorPickerButton* m_ctkColorPickerButton; 85     ctkRangeWidget* m_ctkRangeWidget; 86     ctkCollapsibleGroupBox* m_ctkCollapsibleGroupBox; 87     ctkCoordinatesWidget* m_ctkCoordinatesWidget; 88     ctkTreeComboBox* m_ctkTreeComboBox; 89     ctkSearchBox* m_ctkSearchBox; 90     ctkDirectoryButton* m_ctkDirectoryButton; 91     ctkCheckableComboBox* m_ctkCheckableComboBox; 92     ctkMaterialPropertyWidget* m_ctkMaterialPropertyWidget; 93     ctkMatrixWidget* m_ctkMatrixWidget; 94     ctkPathLineEdit* m_ctkPathLineEdit; 95 }; 96 
97 #endif // WIDGET_H
 1 #include "Widget.h"
 2 #include <QApplication>
 3 
 4 int main(int argc, char *argv[])  5 {  6  QApplication a(argc, argv);  7  Widget w;  8  w.show();  9 
10     return a.exec(); 11 }

3、CTK Widgets應用編譯結果

CTK框架——CTK Widgets快速入門

4、CTK Widgets學習示例

CTK Widgets測試代碼位於CTK/Libs/Widgets/Testing/Cpp中,可以作為學習示例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM