Qt 6.12 LTS is out! See what's new in the release
blog
Perfectly rounding your widget
-
Hello, everyone,
as the title says, I have an algorithm that allows you to round a widget (the 4 corners), but it doesn't perfectly round a widget because if you test this algorithm you will notice that the curve is not really round, here is an image to be a little clear:
please do not take into account what is written but rather take into account the rounded corners of the widget, you will notice that it is not perfectly rounded.
my problem is that I want your help on my algorithm to make my widgets perfectly rounded.
here is my code (algorithm):void setRoundedCorners(int radius_tl, int radius_tr, int radius_bl, int radius_br) { QRegion region(0, 0, width(), height(), QRegion::Rectangle); // top left QRegion round (0, 0, 2*radius_tl, 2*radius_tl, QRegion::Ellipse); QRegion corner(0, 0, radius_tl, radius_tl, QRegion::Rectangle); region = region.subtracted(corner.subtracted(round)); // top right round = QRegion(width()-2*radius_tr, 0, 2*radius_tr, 2*radius_tr, QRegion::Ellipse); corner = QRegion(width()-radius_tr, 0, radius_tr, radius_tr, QRegion::Rectangle); region = region.subtracted(corner.subtracted(round)); // bottom right round = QRegion(width()-2*radius_br, height()-2*radius_br, 2*radius_br, 2*radius_br, QRegion::Ellipse); corner = QRegion(width()-radius_br, height()-radius_br, radius_br, radius_br, QRegion::Rectangle); region = region.subtracted(corner.subtracted(round)); // bottom left round = QRegion(0, height()-2*radius_bl, 2*radius_bl, 2*radius_bl, QRegion::Ellipse); corner = QRegion(0, height()-radius_bl, radius_bl, radius_bl, QRegion::Rectangle); region = region.subtracted(corner.subtracted(round)); setMask(region); }thank you in advance for your help