In workspace zeichnen

Alles rund um die Programmierung mit Qt
Antworten
kannaum
Beiträge: 73
Registriert: 31. Januar 2010 09:57

In workspace zeichnen

Beitrag von kannaum »

Hallo ich schon wieder ;-)

Neuer Tag neues Problem.

Ich habe eine QWorkspace, in der ich dem Benutzer etwas zeichnen lassen will.
Die QWorkspace habe ich schon.
Ich schaffe es auch, dass ich zum Beispiel eine blaue Linie in das Hauptfenster zeichne, aber ich schaffe es nicht in die Workspace zu zeichnen.
Mein Code:

Code: Alles auswählen

void Mathematik::paintEvent(QPaintEvent *)
{
    QPainter painter;
    painter.begin(zeichenflaeche);
    painter.setPen(Qt::blue);
    painter.drawLine(100,20,100,100);
    painter.end();
}
zeichenflaeche ist die QWorkspace.

Wenn ich das Programm ausführe kommt kontinuierlich folgendes:
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active
QPainter::end: Painter not active, aborted
Weiß jemand was ich falsch mache?

mfg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Man kann nur innerhalb des paintEvent() des Widgets zeichnen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kannaum
Beiträge: 73
Registriert: 31. Januar 2010 09:57

Beitrag von kannaum »

O, was heißt das jetzt konkret?
Geht es nicht oder anders?

mfg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

???
Wenn du in zeichenflaeche zeichnen willst musst Du dies im paintEvent() von zeichenflaeche machen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
kannaum
Beiträge: 73
Registriert: 31. Januar 2010 09:57

Beitrag von kannaum »

Ok, jetzt habe ichdas mit QWorkspace noch einmal nachgelesen und weis nun was ich falsch gemacht habe.

Aber ich bekomms immer noch nciht so richtig hin.

Ich habe in Hauptfenster.
In dem ist rechts eine QWorkspace.
Dort will ich dann so ein Mdi-Fenster hinmachen, indem man etwas zeichnen kann.
In das selbe Fenster will ich aber auch Buttons zur Farbe usw. hinmachen.

Jetzt habe ich aber leider noch keine Ahnung wie ich das machen soll.
Soll ich diese ganzen Widgets die ich brauche, in en Layout packen, dann das Layout in ein QWidget und dieses dann mit addWindow() zum Mdi-Fenster machen oder wie ist das?

Und welches Widget soll ich zum "draufzeichnen" nehmen?

mfg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Einfach ein Layout, alle Buttons und eine Zeichenfläche (== Deine Klasse von QWidget abgeleitet) reinpacken + darstellen. Ob das MDI oder sonst was ist interessiert in diesem Falle rein gar nicht.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten