Problem mit paintEvent (Widget painting can only begin...)

Alles rund um die Programmierung mit Qt
Antworten
zwutz
Beiträge: 14
Registriert: 20. November 2007 09:13

Problem mit paintEvent (Widget painting can only begin...)

Beitrag von zwutz »

Hallo zusammen...

bevor ich noch länger drüber grübel, frag ich lieber hier nach

Ich hab mein eigenes Widget, abgeleitet von QListView. Wie gewohnt wollt ich paintEvent verwenden, allerdings erscheint beim Ausführen "Widget painting can only begin as a result of a paintEvent"
Ich find aber nichts, was ich anders gemacht habe als sonst

die Headerdatei:

Code: Alles auswählen

#ifndef WLISTVIEW_H
#define WLISTVIEW_H

#include <QListView>

/**
	@author ***
*/

class WListView : public QListView
{
	Q_OBJECT
public:
	WListView( QWidget *parent = 0 );
	~WListView();

protected:
	void paintEvent( QPaintEvent */*event*/ );

public slots:
private:
};

#endif
die CPP-Datei:

Code: Alles auswählen

#include "wlistview.h"
#include <QtGui>

WListView::WListView( QWidget *parent )
: QListView( parent )
{
}

WListView::~WListView()
{
}

void WListView::paintEvent( QPaintEvent */*event*/ )
{
	QPainter painter( this );
}
aufs relevante verkürzt, der fehler kommt aber auch so

Das Widget wird noch in ein anderes Widget eingebunden, das als Hauptfenster dient. Alle übrigen paintEvents aus anderen verwendeten Widgets hab ich bereits auskommentiert, auch das hat nichts daran geändert

wo kann der Fehler liegen? Such ich nur an der falschen Stelle?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Mach einen Breakpoint an der Stelle an der die Debug-Mesdsaage ausgegeben wird und schau im Backtrace nach. Irgendwo musst Du paintEvent() oder eine Zeichenfunktion direkt aufrufen - sonst würde der Fehler nicht kommen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
zwutz
Beiträge: 14
Registriert: 20. November 2007 09:13

Beitrag von zwutz »

Christian81 hat geschrieben:Mach einen Breakpoint an der Stelle an der die Debug-Mesdsaage ausgegeben wird und schau im Backtrace nach. Irgendwo musst Du paintEvent() oder eine Zeichenfunktion direkt aufrufen - sonst würde der Fehler nicht kommen.
ich hab den Code incl main-Funktion auf gerade mal vll effektive 15 Zeilen gekürzt... Das Widget wird direkt als MainWidget verwendet, Konstruktoren und Destruktor gelehrt und alle Memberfunktionen bis auf besagtes PaintEvent auskommentiert... die Meldung kommt trotzdem noch (sogar 3x, davor nur 2x).
Ich bezweifle stark, dass ich da ein zweites paintEvent oder dergleichen übersehen habe
Ich weiß, dass der Fehler wahrscheinlich so derart offensichtlich ist, dass ich nur den sprichwörtlichen Wald nicht sehe, aber ich find trotzdem nichts -.-
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn es nur noch 15 Zeilen sind, kannst Du sie auch hier posten.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

 QPainter painter(viewport()); 
zwutz
Beiträge: 14
Registriert: 20. November 2007 09:13

Beitrag von zwutz »

Christian81 hat geschrieben:Wenn es nur noch 15 Zeilen sind, kannst Du sie auch hier posten.
der Großteil steht bereits oben. Der Rest ist die obligatorische Main-Funktion
upsala hat geschrieben:

Code: Alles auswählen

QPainter painter(viewport());
danke, werd ich morgen gleich testen

-edit-
Funktioniert, danke. Da hätt ich lang suchen können ^^
Antworten