[solved] Kompilierfehler bei QToolButton Vorwärtsdeklaration
Verfasst: 29. Dezember 2009 22:08
Hallo,
beim Versuch das Programmierbeispiel "Plotter" aus "C++ GUI Programmierung mit Qt 4" (Dt. Ausgabe ab S. 169) nachzuprogrammieren (im ersten Anlauf erstmal abzutippen) bekomme ich direkt am Anfang folgende Fehlermeldung:
im Header:
Der Fehler wiederholt sich entsprechen auch weiter unten immer wieder, wenn auf den Button zugegriffen wird...
Ich halte das erstmal für Folgefehler...
Hat jemand eine Idee?
Liegt das an der Einbindung externer Resourcen?
Eigentlich müsste doch schon eine Klasse QToolButton existieren, oder?
beim Versuch das Programmierbeispiel "Plotter" aus "C++ GUI Programmierung mit Qt 4" (Dt. Ausgabe ab S. 169) nachzuprogrammieren (im ersten Anlauf erstmal abzutippen) bekomme ich direkt am Anfang folgende Fehlermeldung:
Code: Alles auswählen
/media/disk/NvhTool/plotter.cpp:12: error: invalid use of incomplete type ‘struct QToolButton’
Code: Alles auswählen
#include "plotter.h"
Plotter::Plotter(QWidget *parent) :
QWidget(parent)
{
setBackgroundRole(QPalette::Dark);
setAutoFillBackground(true);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setFocusPolicy(Qt::StrongFocus);
RubberBandIsShown = false;
ZoomInButton = new QToolButton(this); // hier stimmt was nicht!
ZoomInButton->setIcon(QIcon(":/Button_zoom_in.png"));
ZoomInButton->adjustSize();
connect(ZoomInButton, SIGNAL(clicked()), this, SLOT(zoomIn()));
ZoomOutButton = new QToolButton(this);
ZoomOutButton->setIcon(QIcon(":/Button_zoom_in.png"));
ZoomOutButton->adjustSize();
connect(ZoomOutButton, SIGNAL(clicked()), this, SLOT(zoomOut()));
setPlotSettings(cPlotSettings());
}
Code: Alles auswählen
/media/disk/NvhTool/plotter.h:11: error: forward declaration of ‘struct QToolButton’
Code: Alles auswählen
#ifndef PLOTTER_H
#define PLOTTER_H
#include <QWidget>
#include <QMap>
#include <QPixmap>
#include <QVector>
class QToolButton; // hier stimmt was nicht!!! Zeile 11
class PlotSettings;
class Plotter : public QWidget
{
Q_OBJECT
public:
Plotter(QWidget *parent = 0);
void setPlotSettings(const PlotSettings &settings);
void setCurveData (int id, const QVector<QPointF> &data);
void clearCurve(int Id);
QSize minimumSizeHint() const;
QSize sizeHint() const;
signals:
public slots:
void zoomIn();
void zoomOut();
protected:
void paintEvent(QPaintEvent *event);
void resizeEvent(QResizeEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
void wheelEvent(QWheelEvent *event);
private:
void updateRubberBandRegion();
void refreshPixmap();
void drawGrid(QPainter *painter);
void drawCurves(QPainter *painter);
enum {Margin = 50};
QToolButton *ZoomInButton;
QToolButton *ZoomOutButton;
QMap <int, QVector<QPointF> >CurveMap;
QVector<PlotSettings> ZoomStack;
int CurZoom;
bool RubberBandIsShown;
QRect RubberBandRect;
QPixmap Pixmap;
};
Ich halte das erstmal für Folgefehler...
Hat jemand eine Idee?
Liegt das an der Einbindung externer Resourcen?
Eigentlich müsste doch schon eine Klasse QToolButton existieren, oder?