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

时间:2014-08-25 07:18:19

标签: qt widget

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

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

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

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:0)

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