У меня есть два виджета и один QPrintPreviewDialog. Я присоединяю сингалы с QPrintPreviewDialog'а к соответствующим слотам Print(QPrinter*) обоих виджетов и пытаюсь что-то распечатать. Однако происходит слудующее: мне говорят, что только один QPainter может работать за один раз. Странно, вроде бы я их завершал.
Кто знает, в чем дело - выручайте!
подсоединяются сигналы
QPrintPreviewDialog pPD(&printer);
cout << connect(&pPD, SIGNAL(paintRequested(QPrinter *) ), (PicWidget*)picWidget, SLOT(Print(QPrinter*)) ) << endl;
cout << connect(&pPD, SIGNAL(paintRequested ( QPrinter*)), (BrWidget*)brWidget, SLOT(Print(QPrinter*)) ) << endl;
pPD.exec();
А вот функции соответствующих слотов:
void PicWidget::Print( QPrinter* printer )
{
cout << "PCW:P"<<endl;
QPainter* painter = printer->paintEngine()->painter();
if(!painter)
painter = new QPainter(printer);
painter->begin(printer);
painter->drawText(100,100, "PICW");
painter->end();
}
void PicWidget::Print( QPrinter* printer )
{
cout << "PCW:P"<<endl;
QPainter* painter = printer->paintEngine()->painter();
if(!painter)
painter = new QPainter(printer);
painter->begin(printer);
painter->drawText(100,100, "PICW");
painter->end();
}