Not able to create 3 similar Triangle object
-
Took RenderArea class from basicdrawing and insert into my project. Not able to create a sequence of Triangle object
//////////////////////////////////////////////////////////////////////// RenderArea* renderArea; ////////////////////////////////////////////////////////////// renderArea = new RenderArea; RenderArea::Shape shape = RenderArea::Shape(4); renderArea->setShape(shape); Layout_page2->addWidget(renderArea);
-
@alvinNew Looking at source it seems you need to use a polygon which is at index 3 and set points count to
3
inrenderarea.cpp
herepainter.drawPolygon(points, 3);
-
Did few experiment with renderarea class, cannot get it to work. It's alright.
Any idea, How to create 3 triangle and blind it in horizontal layout?
| / | / | /
|/ |/ |/ -
@alvinNew Create a custom widget by subclassing
QWidget
and overridepaintEvent
to drawing custom shapes. Following is an example://triangle.cpp Triangle::Triangle(QWidget *parent) : QWidget(parent) {} void Triangle::paintEvent(QPaintEvent *e) { static const QPoint points[3] = { QPoint(40, 80), QPoint(20, 10), QPoint(60, 10), }; QPainter p(this); p.drawPolygon(points,3); }
and then add it from your main code for eg. from dialog.cpp or mainwindow.cpp
//dialog.cpp #include "triangle.h" Triangle *a = new Triangle(this); Triangle *b = new Triangle(this); Triangle *c = new Triangle(this); //add it to horizontal or vertical layout, add stretch as required. ui->horizontalLayout->addWidget(a); ui->horizontalLayout->addWidget(b); ui->horizontalLayout->addWidget(c);
Try playing with the above code. Make it more dynamic by calculating points depending upon the widget size.
Hope this helps... -
It works, i got the 3 triangle.
But when i addwidget with other layout and widget.
There is a huge spacing(row).
I want the 3 triangle directly after my page2_line, best it is joined.=======mainwindow =======
PictureWidget *widget = new PictureWidget(); Layout_page2->addWidget(page2_line); Layout_page2->addWidget(widget); Layout_page2->addLayout(WordLayout); Layout_page2->addWidget(gifmoving);
-
@alvinNew How does it look now? Can post post a screenshot ?
Besides, Layouts are meant for that. They equally space widgets inside them. -
@p3c0
in picpaste
http://picpaste.com/picpaste-bazEpaOE.jpgwant to add the page2_line in Widget, but i felt logically this isn;t correct
-
@alvinNew Try setting maximum and minimum size to the widget which is above the triangle widget.