Russian Qt Forum
Сентябрь 21, 2024, 14:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Печать с двух виджетов на одной странице.  (Прочитано 3229 раз)
Я.К.
Гость
« : Июль 05, 2009, 12:03 »

У меня есть два виджета и один 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();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 21.