找回密码
 立即注册
收起左侧

QT和ITK的联合编程调试出错没有默认的构造函数

0
回复
195
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2021-3-11 15:28:17 显示全部楼层 |阅读模式
1Qter豆
求大佬帮忙!!原本是希望按照vtk的FourPaneViewer示例那样,将itk处理的图像在qt界面中显示,但是运行时会出现DrrBuild没有默认的构造函数,查看过资料明白了默认构造函数等的要求,可是不知道该怎么解决好。。。(vtk示例程序段)MainWindow.h:
#ifndef QtVTKRenderWindows_H
#define QtVTKRenderWindows_H
...
#include <QMainWindow>
#include <QDoubleValidator>
#include <QtCore/QObject>

#include <drrbuild.h>

// Forward Qt class declarations
class Ui_QtVTKRenderWindows;

class QtVTKRenderWindows : public QMainWindow
{
  Q_OBJECT
public:

  // Constructor/Destructor
  QtVTKRenderWindows(int argc, char *argv[]);
  ~QtVTKRenderWindows() override {}
private:

  // Designer form
  Ui_QtVTKRenderWindows *ui;
  DrrBuild *fi;

}

(vtk示例程序段)MainWindow.cpp:
QtVTKRenderWindows:tVTKRenderWindows( int vtkNotUsed(argc), char *argv[])
{
  this->ui = new Ui_QtVTKRenderWindows;
  this->ui->setupUi(this);

...
  connect(ui->actionOpenDrr, &QAction::triggered, [=]() {

          fi = new DrrBuild;
          fi->show();
  });


(vtk示例主函数)
#include <QApplication>
#include <QSurfaceFormat>

#include "QVTKOpenGLWidget.h"
#include "QtVTKRenderWindows.h"

int main( int argc, char** argv )
{
  // needed to ensure appropriate OpenGL context is created for VTK rendering.
  QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat());

  // QT Stuff
  QApplication app( argc, argv );

  QtVTKRenderWindows myQtVTKRenderWindows(argc, argv);
  myQtVTKRenderWindows.show();
  return app.exec();
}
(itk的程序段)drrbuild.h:
#ifndef DRRBUILD_H
#define DRRBUILD_H
#include <QWidget>
#include "ui_drrbuild.h"
namespace Ui {
class DrrBuild;
}
class DrrBuild : public QWidget
{
    Q_OBJECT
public:
DrrBuild(int argc, char *argv[]);
~DrrBuild();
private:
    Ui:rrBuild *ui;
};
#endif // DRRBUILD_H


(itk的程序段)drrbuild.cpp:
DrrBuild:rrBuild(int argc, char *argv[])
{
        new Ui:rrBuild;
        ui->setupUi(this);

...
}
DrrBuild::~DrrBuild()
{
    delete ui;
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册