Устройство рисования вернуло двигатель == 0, тип: 1C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Устройство рисования вернуло двигатель == 0, тип: 1

Сообщение Anonymous »

Я видел много ответов на один и тот же вопрос, я уже просмотрел их, но ни один из них не решил мою проблему, я получаю сообщение об ошибке


QWidget::paintEngine: больше не следует вызывать
QPainter::begin: Устройство рисования вернуло engine == 0, тип: 1
QPainter::end: Painter не активен, прерван


Мне нужно знать, что такое тип: 1 и почему отображается эта ошибка.

Мой код:

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() 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();
}
и класс iconwidget будет отлично работать, если основная функция изменится на

Код: Выделить всё

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();
}
это означает, что если мы используем объект класса iconwidget в основной функции, он работает, но он не работает, когда мы делаем то же самое в классе groupwidget,
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/273 ... e-0-type-1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»