Как программно прокрутить QPrintPreviewWidget? - PullRequest
1 голос
/ 11 марта 2012

У меня есть QPrintPreviewWidget, я обновляю его содержимое программным способом на основе пользовательского ввода.Проблема при этом заключается в том, что полоса прокрутки остается там, где она была, а мне нужно, чтобы она вернулась наверх.

Я пытался использовать функцию scroll с очень большим числом, но это не помоглочто-нибудь.Любое предложение?

Редактировать:

Вот структура диалога в Qt Creator:

enter image description here

ТогдаЯ добавляю QPrintPreviewWidget к макету previewWidgetContainter, используя этот код:

previewWidget_ = new QPrintPreviewWidget(printer_, this);
previewWidget_->fitToWidth();
ui->previewWidgetContainter->addWidget(previewWidget_);

Редактировать:

Я последовал предложению @tmpearce, но это нене работаетНа showEvent я установил текущую страницу, но она никак не влияет.Мой код выглядит примерно так:

qDebug() << "Before" << previewWidget.currentPage();
previewWidget.setCurrentPage(0);
qDebug() << "After" << previewWidget.currentPage();

И результат всегда такой:

Before 15
After 15

Я также пытался установить страницу в других местах, но результатвсегда одно и то же.Это похоже на ошибку в QPrintPreviewWidget, поэтому я собираюсь сейчас отказаться.В любом случае, спасибо за предложения.

1 Ответ

0 голосов
/ 11 марта 2012

Не зная больше об особенностях вашего кода, я бы предложил явно вызвать этот слот: QPrintPreviewWidget::setCurrentPage(int)

после изменения содержимого виджета.

...