qt - Render widgets to different positions on paintdevice -
with qt want print multiple widgets onto single dina4-page. have 3 widgets want place directly next each other:
------- | | ------- | b | ------- | c | ------- as render them in code below, 3 widgets rendered above each other @ postion of c (or , b not rendered @ all, don't see it). intended move each widget little bit down size of last widget, render directly next last one. seems not work:
int lastwidgetheight; lastwidgetheight= 0; (int = 0; < this->widgets.size(); i++){ wid* e = widgets.at(i); qwidget *printbox = e->printarea(); // define float scalex , scaley [...] qpainter painter; painter.begin(printer); painter.scale(scalex,scaley); // render , translate in y-direction: printbox->render(&painter, qpoint(0,lastwidgetheight)); // <-- idea painter.end(); lastwidgetheight+= e->height(); } if 3 widgets rendered, how loop affect position of , b, since create new qpainter-object each time?
you can set 3 elements in layout
qvvoxlayout *vertical_layout; this->getlayout()->addlayout(this->vertical_layout); vertical_layout->additem(elementa); vertical_layout->additem(elementb); vertical_layout->additem(elementc); and can set distance between them with:
vertical_layout- >setcontentsmargins(left,top,right,bottom); with in place.
Comments
Post a Comment