gpt4 book ai didi

c++ - 来自 QFrame 的 Qt 气球窗口

转载 作者:行者123 更新时间:2023-11-28 02:28:27 26 4
gpt4 key购买 nike

我想在 Qt 中为提示创建自己的气球窗口。我首先创建一个带圆角的窗口。

我正在使用从 QFrame 继承的类。该类的构造函数包含:

this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
Pal.setColor(QPalette::Background, Qt::yellow);
this->setAutoFillBackground(true);
this->setPalette(Pal);
this->setStyleSheet("QFrame {border-style: solid; border-width: 10px;"
"border-radius: 100px;"
"min-width: 10em; background-clip: padding; background-origin: content;}");

但这并不是在使用 show() 成员函数显示时创建圆角。我明白了:

enter image description here

我怎样才能摆脱那些矩形边缘并使它们透明着色?

如果您需要任何其他信息,请询问。

最佳答案

如果我的猜测是正确的,你正在寻找类似 setMask 的东西!

基本上您需要做的是绘制一个具有所需半径的矩形,然后将其转换为 QRegion 以便与 setMask 一起使用。请看下面的一种方式:

QPainterPath path;
path.addRoundedRect(rect(), 100, 100);
QRegion region = QRegion(path.toFillPolygon().toPolygon());
setMask(region);

这就是结果:

enter image description here

希望对您有所帮助!

关于c++ - 来自 QFrame 的 Qt 气球窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com