С Qt Я хочу напечатать несколько виджетов на одной странице DINA4. Скажем, у меня есть 3 виджетов, которые я хочу, чтобы поместить непосредственно рядом друг с другом:Отобразить виджетов на разные позиции на paintdevice
-------
| A |
-------
| B |
-------
| C |
-------
Как я сделать их в своем коде ниже, все 3 виджеты оказываются друг над другом на постион С (или даже и B вообще не отображаются, я этого не вижу). Я намеревался переместить каждый виджет немного по размеру последнего виджета, чтобы отобразить его непосредственно рядом с последним. Это, кажется, не работает:
int lastWidgetHeight;
lastWidgetHeight= 0;
for (int i = 0; i < this->widgets.size(); i++){
Wid* e = widgets.at(i);
QWidget *printBox = e->printArea();
// define float scaleX and scaleY [...]
QPainter painter;
painter.begin(printer);
painter.scale(scaleX,scaleY);
// render and translate in y-direction:
printBox->render(&painter, QPoint(0,lastWidgetHeight)); // <-- My idea
painter.end();
lastWidgetHeight+= e->height();
}
Если все 3 виджетов визуализируется, то как петля влияет на положение А и В, так как я создаю новый QPainter-Object каждый раз?
Не нужно каждый раз воссоздавать художника. Просто повторите использование того же самого живописца, созданного вне цикла. Вы также можете настроить перевод художника так, чтобы последующие виджеты отображались в разных положениях. –