How to set border on a widget
-
I have a QWidget class which will be added to a mainWindow. There will be some buttons, label on this widget. I want to have a border on it and to let user know the area of this widget. Searched online and cannot find a clear and direct answer. anybody here can help me with this? Or the border belongs to layout?
-
The easiest would be to base your widget on QFrame, not QWidget and set the "frameShape":http://qt-project.org/doc/qt-5.0/qtwidgets/qframe.html#frameShape-prop
Another option is to use qss like this:
yourWidget->setStyleSheet("border: 1px solid red");
-
Hi,
Have had the same problem some time ago and all my search lead to nothing,so I got creative.I inherited QWidget and in the paint event I drew the rectangle to act as my border.The next chunk of code should speak better:void mCustomWidget::paintEvent(QPaintEvent *e) { QPainter painter(this); painter.drawRoundedRect(0,5,width()-5, height()-7,3,3); QWidget::paintEvent(e); }
Hope this helps.
-
The QFrame is the easy option. Layouts aren't used for borders etc, only for arranging widgets inside parent widget. If a label/title is needed, the QGroupBox is the way to go.
-