Farbe Gerät zurückgegeben engine == 0, Typ: 1

Ich habe gesehen, viele Antworten auf die gleiche Frage habe ich auch schon durchgemacht, aber keine davon mein problem gelöst, ich bin immer der Fehler

QWidget::paintEngine: Sollte nicht mehr aufgerufen werden
QPainter::begin: Farbe Gerät zurückgegeben engine == 0, Typ: 1
QPainter::Ende: Maler nicht aktiv, abgebrochen

Muss ich wissen, Was ist der Typ : 1, und warum dieser Fehler zeigt,

Mein code ist

iconwidget.h

class IconWigdet : public QAbstractButton
{
Q_OBJECT
QRect *iconarea;
QPainter p;
QPixmap *icon; 
public:
explicit IconWigdet(QRect *rectangle,QPixmap *tempicon);
void paintEvent(QPaintEvent *);  
};

iconwidget.cpp

IconWigdet::IconWigdet(QRect *rectangle,QPixmap *tempicon)
{
iconarea = new QRect();
*iconarea = *rectangle  ;
icon = new QPixmap(*tempicon);
this->setGeometry(0,0,iconarea->width(),iconarea->height()+20);
}

void IconWigdet::paintEvent(QPaintEvent *)
{
qDebug() << " PaintEvent ";
p.begin(this);
p.drawText(iconarea->x()+ 10,iconarea->height()+10, "name");
p.drawPixmap ( *iconarea,*icon );
p.end();
}

groupwidget.h

class GroupWidget: public QWidget
{
Q_OBJECT
QGridLayout *groupLayout = new QGridLayout ;
QRect *rect = new QRect( 0, 0, 100, 100);
QPixmap *pimap = new QPixmap("../widgeticon/icons/ball.png");
IconWigdet *icon = new IconWigdet(rect,pimap);
public:
GroupWidget();
};

groupwidget.cpp

GroupWidget::GroupWidget()
{ 
groupLayout->addWidget(icon, 0, 1, 1, 1, 0);
this->setLayout(groupLayout);
icon->show();
QPaintEvent *e;
icon->paintEvent(e);
}

main.cpp

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GroupWidget *Gw = new GroupWidget;
Gw->show();
return a.exec();
}

und die iconwidget Klasse funktioniert perfekt, wenn die main-Funktion geändert, um

int main(int argc, char *argv[])
{
QApplication a(argc, argv);;   
QRect *rect = new QRect( 0, 0, 100, 100);
QPixmap *pimap = new QPixmap("../widgeticon/icons/ball.png");
IconWigdet *Iw = new IconWigdet(rect,pimap);
Iw->show();
return a.exec();
}

das bedeutet, dass, Wenn wir iconwidget class-Objekt in der main-Funktion, es funktioniert, aber es funktioniert nicht, wenn wir das gleiche tun in groupwidget Klasse,

Vielen Dank im Voraus

  • Bitte keine änderungen vornehmen, erlischt die Antworten, die Sie erhalten. Ich habe ein Rollback für Sie, so dass die akzeptierte Antwort macht wieder Sinn.
InformationsquelleAutor Akhil V Suku | 2014-12-09
Schreibe einen Kommentar