Russian Qt Forum

Qt => Печать => Тема начата: cya-st от Апрель 21, 2010, 18:26



Название: QPrintPreviewDialog масштаб
Отправлено: cya-st от Апрель 21, 2010, 18:26
Всем привет...
Подскажите пожалуйста как задать масштаб QPrintPreviewDialog диалога програмно.


Название: Re: QPrintPreviewDialog масштаб
Отправлено: BRE от Апрель 21, 2010, 19:09
Всем привет...
Подскажите пожалуйста как задать масштаб QPrintPreviewDialog диалога програмно.
Попробуй сделать свой диалог использующий QPrintPreviewWidget.


Название: Re: QPrintPreviewDialog масштаб
Отправлено: cya-st от Апрель 21, 2010, 20:51
А как использовать QPrintPreviewWidget, есть пример?


Название: Re: QPrintPreviewDialog масштаб
Отправлено: cya-st от Апрель 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 - ограничение на количество страниц?


Название: Re: QPrintPreviewDialog масштаб
Отправлено: volkov9999 от Август 26, 2010, 02:32
А можно пояснить для начинающих как в preview попадает текст?


Название: Re: QPrintPreviewDialog масштаб
Отправлено: fuCtor от Август 26, 2010, 21:32
Варианта 2:
- читайте документацию, там даже пример должен быть.
- читайте исходники QPrintPreviewDialog (полезно)


Название: Re: QPrintPreviewDialog масштаб
Отправлено: BaltikS от Август 27, 2010, 08:46
Вариант 3. Посмотреть из примера Demonstrations/TextEdit