Qt - 创建小部件的平滑圆角

问题描述 投票:0回答:2

我尝试使用下面描述的方法创建小部件的平滑圆角:

  1. 使用
    Qt::Window | Qt::FramelessWindowHint
    创建一个小部件并
    Qt::WA_TranslucentBackground
    旗帜;
  2. 在小部件内创建一个
    QFrame
  3. 将样式表设置为
    QFrame
    ,例如:
border: 1px solid red;
border-radius: 20px;
background-color: black;

我能够获得平滑的圆角,但该小部件是“窗口”类型,因此我无法根据其他小部件定位该小部件。我们可以通过不将 widget 做成“窗口”类型来实现 widget 的完全透明吗?

qt widget
2个回答
14
投票

你的问题很不清楚。在我看来,这是一个您想要添加到布局中的小部件。如果您想要一个带有圆角的小部件,只需使用

QFrame
并为其设置样式表:

myFrame->setStyleSheet(".QFrame{background-color: red; border: 1px solid black; border-radius: 10px;}");

无需创建包含

QFrame
的小部件。直接使用
QFrame
就可以了。


0
投票

如果我正确理解你的问题 - 那么你可以使用

QGraphicsOpacityEffect
类来处理任何“非窗口”小部件。

© www.soinside.com 2019 - 2024. All rights reserved.