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

par*_*ora 5 qt widget

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

  1. 使用Qt::Window | Qt::FramelessWindowHintQt::WA_TranslucentBackground标志创建一个小部件;
  2. 创建QFrame一个小部件的内部;
  3. 将stylesheel设置为QFrame,例如:
border: 1px solid red;
border-radius: 20px;
background-color: black;
Run Code Online (Sandbox Code Playgroud)

我能够获得光滑的圆角,但小部件是"窗口"类型,所以我无法根据其他小部件定位小部件.我们可以通过不将窗口小部件设置为"窗口"类型来获得窗口小部件的完全透明度吗?

thu*_*uga 8

你的问题很不清楚.听起来像这是一个你想要添加到布局的小部件.如果你想要一个带圆角的小部件,只需使用a QFrame并设置一个样式表:

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

无需创建包含a的窗口小部件QFrame.QFrame直接使用.


Dmi*_*nov 0

如果我正确理解你的问题 - 那么你可以QGraphicsOpacityEffect为任何“非窗口”小部件使用类。