包含像素图的QLabel的圆角

时间:2018-02-21 10:23:04

标签: c++ qt qlabel

我试图在QT表格的QLabel中显示一个图像。我需要这个标签只有左上角和右上角是圆的,而底部2则是矩形。

使用样式表我给border-radius一个值,它起作用了。然而,该标签内的图像保持矩形。 (图像的一角隐藏在QLabel的圆角上)。

在周围搜索时,我发现为图像(pixmap)设置遮罩并在其上绘制RoundRect会导致角落为圆形。

虽然有效,但它使图像的所有四个角都是圆形的。

有没有办法只将顶部作为圆形?

这就是我如何使像素图的边缘圆形:

QString style = "border: 4px solid; \n";
style += "border-top-left-radius: 20px;\n";
style += "border-top-right-radius: 20px;";
ui->image1->setStyleSheet(style);

这就是我如何使QLabel左上角和右上角的圆形

// in file b.php:
function example(){ /* .... */}
echo 123;

// In file a.php:
// If you do this:
file_get_contents("b.php"); // You now only have "123", the output only (the echo).

// If you do this:
require_once "b.php"; // You get the echo (as that is a part of b.php), 
// But you can now also access example()!

1 个答案:

答案 0 :(得分:0)

你戴着面具的想法并不算太糟糕。你只需要对面具进行一些复合绘图,例如

QPainter painter(&map);
painter.setBrush(Qt::color1);
painter.drawRoundedRect(0, 0, 100, 40, 20, 20);
painter.drawRect(0, 20, 100, 100);
p.setMask(map);