如何制作一个圆形QLabel?

9
我有一个QLabel,我用样式表把它填充成红色,但是QLabel是矩形的,我想要一个圆形。我尝试添加border-radius,但是不起作用,可能是因为我把QLabel放在formLayout中。
有没有一种简单的方法可以使用样式表使QLabel变成圆形?
谢谢。
编辑:现在使用图片似乎更容易做到这一点。
2个回答

9

我尝试使用样式表来设置边框半径和最小宽度/高度。看起来像这样:

QLabel{
  border-radius: 10px;
  min-height: 20px;
  min-width: 20px;
}

你需要使用max-height和max-width来使这个功能正常工作,而不是使用Iso min-height和min-width。 - lou

5
创建一个图像,将其用作掩码,并通过调用setMask方法将其设置到标签上。如文档所述:-
引用: 使只有位图具有相应1位的小部件的像素可见。如果该区域包括小部件的rect()之外的像素,则取决于平台,该区域中的窗口系统控件可能可见或不可见。

1
运行完美,谢谢! - Evans Belloeil
这不是一个特别好的建议,因为setMask只在顶部窗口上需要,其中掩码位图传递到已过时的GUI系统(如旧的X11服务器或Windows 95)。即使是Windows XP也支持Alpha混合窗口(称之为“分层”窗口)。您需要做的就是在绘制标签的最后一步组成掩模圆。这将让您抗锯齿边缘并避免窗口的锯齿外观。 - Kuba hasn't forgotten Monica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接