9

I have a QLabel that i fill in red with the stylesheet, but the QLabel is rectangular, and I want a circle. I try to add border-radius, but it doesn't work, maybe because i put my QLabel in a formLayout.

Is there a simple method to have a round QLabel by using stylesheet ?

Thanks.

EDIT : Using a picture seems more easier than doing this now.

Evans Belloeil
  • 2,413
  • 7
  • 43
  • 76

2 Answers2

9

I tried to use stylesheet by setting border-radius and min-width/min-height. It looks like

QLabel{
  border-radius: 10px;
  min-height: 20px;
  min-width: 20px;
}
Joey
  • 106
  • 2
  • 1
  • Iso min-height and min-width you need max-height and max-width for this to work properly. – lou Sep 02 '22 at 09:58
5

Create an image that you use as a mask and set that on the label by calling setMask. As the documentation states: -

Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. If the region includes pixels outside the rect() of the widget, window system controls in that area may or may not be visible, depending on the platform

TheDarkKnight
  • 27,181
  • 6
  • 55
  • 85
  • This is not a very good advice since `setMask` is really only needed on a top level window, where the mask bitmap is passed to an obsolete GUI system such as an old X11 server or Windows 95. Even Windows XP supports alpha-blended windows (they call it "layered" windows). All that you need to do is to compose a masking circle as the last step of drawing your label. It will let you antialias the edges and avoid the jagged appearance of the window. – Kuba hasn't forgotten Monica Jun 16 '14 at 17:04