Das Malgerät hat die Engine == 0 zurückgegeben, Typ: 1C++

Programme in C++. Entwicklerforum
Guest
 Das Malgerät hat die Engine == 0 zurückgegeben, Typ: 1

Post by Guest »

Ich habe viele Antworten auf die gleiche Frage gesehen, ich habe sie bereits durchgesehen, aber keine davon hat mein Problem gelöst. Ich erhalte die Fehlermeldung


QWidget::paintEngine: Sollte nicht mehr aufgerufen werden
QPainter::begin: Paint-Gerät hat Engine == 0 zurückgegeben, Typ: 1
QPainter::end: Painter nicht aktiv, abgebrochen


Ich muss wissen, was Typ: 1 ist und warum dieser Fehler angezeigt wird.

Mein Code ist

iconwidget.h

Code: Select all

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

Code: Select all

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() x()+ 10,iconarea->height()+10, "name");
p.drawPixmap ( *iconarea,*icon );
p.end();
}
groupwidget.h

Code: Select all

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

Code: Select all

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

Code: Select all

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GroupWidget *Gw = new GroupWidget;
Gw->show();
return a.exec();
}
und die Iconwidget-Klasse funktionieren einwandfrei, wenn die Hauptfunktion in

geändert wird

Code: Select all

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 heißt, wenn wir das Iconwidget-Klassenobjekt in der Hauptfunktion verwenden, funktioniert es, aber es funktioniert nicht, wenn wir dasselbe in der Groupwidget-Klasse tun,
Vielen Dank im Voraus

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post