PrintPreview |
Здравствуйте, гость ( Вход | Регистрация )
PrintPreview |
Anticross |
16.9.2010, 9:15
Сообщение
#1
|
Студент Группа: Участник Сообщений: 22 Регистрация: 31.3.2010 Пользователь №: 1579 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть главный виджет приложения у которого есть функция print, выглядящая следующи образом:
Раскрывающийся текст
При ее вызове информация идет на печать. Функция вызывается от сюда:
Вопрос в следующий : Как можно предварительно вывести печатаемую информацию на экран, а после уже на принтер. Пытался вызывать функцию print и передавать в нее в качестве параметра пустой виджет, не отобразилось. Нашел два класса QPrintPreviewDialog и QPrintPreviewWidget, но что дальше делать не соображу. Подскажите пжлст или дайте пример. Заранее спасибо. |
|
|
BRE |
16.9.2010, 10:21
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Посмотри на QPrintPreviewDialog там есть и пример.
|
|
|
Anticross |
17.9.2010, 9:18
Сообщение
#3
|
Студент Группа: Участник Сообщений: 22 Регистрация: 31.3.2010 Пользователь №: 1579 Спасибо сказали: 0 раз(а) Репутация: 0 |
Посмотри на QPrintPreviewDialog там есть и пример.
Не нашел. Переделал функцию onPrint() в : QPrinter printer; QPrintPreviewDialog * pd = new QPrintPreviewDialog(&printer, this); connect(pd,SIGNAL(paintRequested()), this, SLOT(print(QPrinter *))); if(pd->exec() == QDialog::Accepted) print(&printer); Не совсем понятно из описания на какой слот завязать сигнал паинт реквестед.: The QPrintPreviewDialog class provides a dialog for previewing and configuring page layouts for printer output. Using QPrintPreviewDialog in your existing application is straightforward: Create the QPrintPreviewDialog. You can construct a QPrintPreviewDialog with an existing QPrinter object, or you can have QPrintPreviewDialog create one for you, which will be the system default printer. Connect the paintRequested() signal to a slot. When the dialog needs to generate a set of preview pages, the paintRequested() signal will be emitted. You can use the exact same code for the actual printing as for having the preview generated, including calling QPrinter::newPage() to start a new page in the preview. Connect a slot to the paintRequested() signal, where you draw onto the QPrinter object that is passed into the slot. Call exec(). Call QPrintPreviewDialog::exec() to show the preview dialog. Нашел решение, всем спасибо, можно тему закрывать. Кому интересно решение по этой ссылке : http://www.qtcentre.org/threads/16069-Prat...ntPreviewDialog |
|
|
Текстовая версия | Сейчас: 27.12.2024, 10:59 |