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?