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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPrintPreviewDialog масштаб  (Прочитано 9361 раз)
cya-st
Гость
« : Апрель 21, 2010, 18:26 »

Всем привет...
Подскажите пожалуйста как задать масштаб QPrintPreviewDialog диалога програмно.
Записан
BRE
Гость
« Ответ #1 : Апрель 21, 2010, 19:09 »

Всем привет...
Подскажите пожалуйста как задать масштаб QPrintPreviewDialog диалога програмно.
Попробуй сделать свой диалог использующий QPrintPreviewWidget.
Записан
cya-st
Гость
« Ответ #2 : Апрель 21, 2010, 20:51 »

А как использовать QPrintPreviewWidget, есть пример?
Записан
cya-st
Гость
« Ответ #3 : Апрель 22, 2010, 16:22 »

Сделал так:
Код:
void MainWindow::on_pushButton_clicked()
{
    QPrinter printer(QPrinter::HighResolution);
    printer.setOrientation(QPrinter::Portrait);
    printer.setPaperSize(QPrinter::A4);
    printer.setFullPage(TRUE);

    QPrintPreviewWidget *preview = new QPrintPreviewWidget(&printer, this);
    preview->setWindowFlags(Qt::Window | Qt::WindowTitleHint);
    preview->setWindowState(Qt::WindowMaximized);
    preview->setAttribute(Qt::WA_DeleteOnClose);
    preview->setWindowTitle("kdfhgdkmhgkd");
    connect(preview, SIGNAL(paintRequested(QPrinter *)), SLOT(printDocument(QPrinter *)));
    preview->showMaximized();
}

void MainWindow::printDocument(QPrinter* printer) //Print Doc
{
    QPainter painter;
    painter.begin(printer);

    for(int j=0; j<2; j++)
    {
        for(int i=1; i<=30; i++)
            painter.drawText(1200, 200*i, QString("kjsahsa - %1;  kjhgkdjf - %2").arg(i+j).arg(i*j));

        painter.drawText(printer->pageRect().width()/2-50, printer->pageRect().height()-100,
                         QString("PAGE - %1").arg(j));
        printer->newPage();
    }

    painter.end();
}
Так работает, но если в цикле ставлю j<3 зависает приложение полностью. В QPrintPreviewWidget - ограничение на количество страниц?
Записан
volkov9999
Гость
« Ответ #4 : Август 26, 2010, 02:32 »

А можно пояснить для начинающих как в preview попадает текст?
Записан
fuCtor
Гость
« Ответ #5 : Август 26, 2010, 21:32 »

Варианта 2:
- читайте документацию, там даже пример должен быть.
- читайте исходники QPrintPreviewDialog (полезно)
Записан
BaltikS
Гость
« Ответ #6 : Август 27, 2010, 08:46 »

Вариант 3. Посмотреть из примера Demonstrations/TextEdit
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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