我是Qt初学者并遇到问题: 我正在使用QT(4.8.4)和C ++使用QTCreator(2,72)。 当我尝试编译程序时,我得到:
expected primary-expression before ')' token on Line 26.
我的main.cpp:程序的部分/部分
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include "view.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
createActions();
createMenus();
//Fenster für Visualisierung
ui->dockWidget->setWidget(view); //ERROR Line 26
ui->dockWidget->setWindowTitle("Visualisierung");
ui->dockWidget->setGeometry(20,200,300,300);
}
我的view.cpp:
#include "view.h"
#include <QtGui>
#include <GL/glu.h>
#include <QtOpenGL/QGLWidget>
extern QVector<QMatrix4x4> T_tracked_Point_Cam;
extern QVector<QMatrix4x4> T_approx_Point_Cam;
// Konstruktor
view::view(QWidget *parent) :
QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
{
xRot = 0;
yRot = 0;
zRot = 0;
zoom = 0;
virtuellerAbstand = 0;
xT = 0;
yT = 0;
trackPoint = false;
laserPoint = false;
laserOrients = false;
gitterPoint = true;
Cam_Koo_Trans_X = 0;
Cam_Koo_Trans_Y = 0;
Cam_Koo_Trans_Z = 0;
}
// Destruktor
view::~view()
{}
main.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void openDCMFile();
void drawDICOMImg(std::string fileDICOM);
private:
Ui::MainWindow *ui;
void createActions();
void createMenus();
QMenu *fileMenu;
QAction *openAct;
signals:
void AnzeigeGetracktePunkte(bool);
void AnzeigeLaserPunkte(bool);
void AnzeigeLaserOrients(bool);
void AnzeigeGitterPunkte(bool);
void update_view();
};
#endif // MAINWINDOW_H
vieh.h:
#ifndef VIEW_H
#define VIEW_H
#include <QtOpenGL/QGLWidget>
class view : public QGLWidget
{
Q_OBJECT
public:
view(QWidget *parent = 0);
~view();
QSize minimumSizeHint() const;
QSize sizeHint() const;
double x_max, y_max, z_max;
double x_min, y_min, z_min;
void Zeichnen_getrackte_Punkte();
void Zeichnen_Laserpunkte();
void Zeichnen_Laserorients();
signals:
public slots:
....
protected:
.....
private:
.....
};
#endif // VIEW_H
感谢您的帮助。
答案 0 :(得分:2)
view
只是一个类型的名称。您可能想要传递它的实例:
ui->dockWidget->setWidget(view());
// ^^