Moin nochmal.

Ich bin gerade dabei mir das QCanvas-Feld selbst aufzubauen, da es ja etwas anders sein muss als das Beispiel.
Nun komm ich an der Stelle nicht weiter, wo auf das Feld geklickt wird und ein Punkt gezeichnet werden soll. QCanvasEllipse braucht ja als Uebergabeparameter das QCanvas auf das es gezeichnet werden soll. Da komm ich jetzt aber nicht dran, weil sich das ja in einem protected mousePressEvent abspielt. Am Anfang hab ich noch versucht den ganzen Node in der mousePressEvent-Funktion zu erstellen, dann hab ich ne Node-Klasse erstellt, was mir aber null gebracht hat, wie ich dann festgestellt habe (haette ich _vorher_ nachdenken sollen). Jetzt hab ich mir weiter den Kopf zerbrochen, bin aber nicht auf die Loesung gekommen.
Aber seht besser selbst, die Stelle habe ich gekennzeichnet.

Die Header-Datei:
Code:
#ifndef CANVAS2_H
#define CANVAS2_H

#include <qapplication.h>
#include <qcanvas.h>
#include <stdlib.h>
#include <time.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qvbox.h>

//////////////////////////////////////////////////////////////////////////////////////

//============Node================
class Node : QCanvasEllipse
{
    public:
    Node(QCanvas *canvas);
    
};

//============GraphView===========
class GraphView : public QCanvasView
{
    public:
    GraphView(QCanvas *c, QWidget *parent=0, const char *name=0, WFlags f=0);    
    
    protected:
    void mousePressEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
};

//////////////////////////////////////////////////////////////////////////////////////

#endif //	CANVAS2_H
Die CPP-Datei:
Code:
#include <qapplication.h>
#include <qcanvas.h>
#include <stdlib.h>
#include <time.h>

#include "canvas2.h"

//////////////////////////////////////////////////////////////////////////////////////

//============Node-Konstruktor===========
Node::Node(QCanvas *canvas)
	: QCanvasEllipse(5, 5, canvas)
{
    QCanvasEllipse *node = new QCanvasEllipse();
    setBrush(QBrush(QColor(0, 0, 0)));
}

//============GraphView-Konstruktor========
GraphView::GraphView(QCanvas *c, QWidget *parent, const char *name, WFlags f)
	    : QCanvasView(c, parent, name, f)
{
    resize(sizeHint());
}

//===========GraphView-mousePressEvent=======
void GraphView::mousePressEvent(QMouseEvent *event)
{
    
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Hier kommt Node nicht an das Canvas und seine Methoden ran
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Node *n = new Node(c);
// !!!!!!!!!!!
    n->move(event->x(), event->y());
    n->show();
    n->setZ(5);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
//////////////////////////////////////////////////////////////////////////////////////

P.S.: Erzaehlt mir bitte nicht, wo ich welche includes weglassen kann. Das mach ich zum Schluss und brings mir dann durch Trial&Error bei: So praegt sich mir das besser ein.