Linux(Fedora 16) + elcipse + qt + vtk 结合开发实例

      这篇文章简单的介绍了如何在Linux下使用elcipse + qt + vtk 开发的方法

1,环境准备


1.1 C++ 开发环境

sudo yum install gcc
sudo yum install gcc-c++

1.2 Qt4 安装

sudo yum install qt qt-devel qt-x11 qt-doc qt-demos qt-examples qt-assistant qt-creator qt-config


1.3 eclipse + cdt安装

sudo yum install eclipse eclipse-cdt

1.3 eclipse Qt 插件安装

http://qt.nokia.com/products/eclipse-integration下载于操作系统对应的qt版本,如我的操作系统是 Fedora 16 32位版 就下载 Linux (x86 32 bit)

找到eclipse安装目录:如果是按照上述yum安装的,则安装目录在/usr/lib/eclipse(下述以次为例)

进入安装目录的上一级目录
cd /usr/lib

解压下载的qt插件(如qt-eclipse-integration-linux.x86-1.6.1.tar.gz)

tar xzf ~/Downloads/qt-eclipse-integration-linux.x86-<version>.tar.gz

使用clean模式启动一次eclipse
eclipse -clean

在eclipse的窗口->首选项->Qt中设置Qt的路径(以yum安装为例,编译安装Qt的找到相应目录即可)
Version Name: Qt4(可以随便命名)
bin path: /usr/lib/qt4/bin
include path: /usr/include

1.4 VTK安装

这里只介绍通过yum安装,需要编译安装的同学请到VTK官网下载源代码,根据说明安装

yum 安装VTK
sudo yum install vtk*

这条命令将会安装和VTK相关的所有扩展,如果需要选择安装则先
yum search vtk
然后根据自己的需要进行安装

2,一个简单的例子


2.1 工程建立


打开eclipse 新建一个Qt GUI工程,填写项目名称:QtVtk,将Ui Type设置成QMainWindow

built 工程

2.2 修改pro文件

编辑QtVtk.pro
在文件的末尾添加(编译安装VTK的同学可自行修改路径)
INCLUDEPATH = /usr/include/vtk
LIBS += -L/usr/lib  
LIBS += -lvtkCommon -lvtksys -lQVTK -lvtkQtChart -lvtkViews -lvtkWidgets -lvtkInfovis -lvtkRendering -lvtkGraphics -lvtkImaging -lvtkIO -lvtkFiltering -lvtkDICOMParser -lvtkalglib -lvtkverdict -lvtkmetaio -lvtkNetCDF -lvtksqlite -lvtkexoIIc -lvtkftgl -lvtkHybrid 
这里将大部分vtk支持的库都添加进去了,实际项目中可以根据需要自己添加和删除。

2.3 编辑UI

编辑qtvtk.ui
添加一个vertical Layout在MainWindow中
调整vertical Layout大小

2.4 修改窗口类代码

编辑qtvtk.h

#ifndef QTVTK_H
#define QTVTK_H

#include <QtGui/QMainWindow>
#include <QVTKWidget.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkActor2D.h>
#include <vtkTextMapper.h>
#include <vtkTextProperty.h>
#include <vtkDataSetReader.h>
#include <vtkDataSetMapper.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkCommand.h>
#include <vtkCamera.h>
#include "ui_qtvtk.h"

class QtVtk : public QMainWindow
{
    Q_OBJECT

public:
    QtVtk(QWidget *parent = 0);
    ~QtVtk();
private:
    QVTKWidget* vtkWidget;
    vtkRenderer* renderer;
private:
    Ui::QtVtkClass ui;
};

#endif // QTVTK_H


编辑qtvtk.cpp
#include "qtvtk.h"

QtVtk::QtVtk(QWidget *parent) :
		QMainWindow(parent)
{
	ui.setupUi(this);
	vtkWidget = new QVTKWidget(this, QFlag(0));
	ui.verticalLayout->addWidget(vtkWidget);
	ui.verticalLayout->update();
	renderer = vtkRenderer::New();
	renderer->SetBackground(0.3,0.5,0.1);
	vtkWidget->GetRenderWindow()->AddRenderer(renderer);

	vtkSphereSource *sphere = vtkSphereSource::New();
	sphere->SetRadius(1.0);
	sphere->SetThetaResolution(18);
	sphere->SetPhiResolution(18);
	vtkPolyDataMapper *map= vtkPolyDataMapper::New();
	map->SetInput(sphere->GetOutput());

	vtkActor *aSphere = vtkActor::New();
	aSphere->SetMapper(map);
	aSphere->GetProperty()->SetColor(0,0,1);

	renderer->AddActor(aSphere);

	renderer->Render();
}

QtVtk::~QtVtk()
{
	renderer->Delete();
	delete vtkWidget;
}

这是根据vtk官方提供的例子修改的代码,代码实现的是使用VTK绘制一个球体

2.5 编译运行

built工程

运行 效果如下 鼠标移至球体左键拖拽可使球体旋转










                

          

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值