如何创建带有圆形边框(无标准边框)的部分透明窗口?
(我使用 Qt::FramelessWindowHint
来禁用标准边框)
我尝试了样式表,但 border-radius
和 opacity
似乎对窗口没有任何影响,它只适用于封闭小部件的子级。
我的第二个想法是让窗口完全透明(使用 setWindowOpacity
),然后添加一个带有圆角的附加小部件(因为 border-radius
对 child 有效),然后将我的所有其他小部件分组到该小部件中。但这不起作用,因为 setWindowOpacity
也会影响所有 child (我还没有找到改变这种行为的方法)。
而且我能想到的任何使外部窗口透明的方法(比如样式表opacity
)都不能正常工作(我只得到一个黑盒子而不是透明窗口)
我们将不胜感激。
最佳答案
我有一个类似的问题,我想在顶级小部件上绘画并且只显示绘画的部分。 setWindowOpacity 改变了绘制部分的不透明度,这是我不想要的。
this->setAttribute(Qt::WA_TranslucentBackground, true);
更改了没有绘制部分的小部件的不透明度。我只是尝试折腾一个按钮,它也显示完全不透明。所以你应该可以随心所欲地展示其他 child 。
关于c++ - QT4:带圆角的透明窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909092/