【问题标题】:Qt - Creating smooth rounded corners of a widgetQt - 创建小部件的平滑圆角
【发布时间】:2014-08-25 07:18:19
【问题描述】:

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

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

我能够获得平滑的圆角,但小部件是“窗口”类型,因此我无法根据其他小部件定位小部件。不将小部件设为“窗口”类型,我们能否实现小部件的完全透明?

【问题讨论】:

    标签: qt widget


    【解决方案1】:

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

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

    无需创建包含QFrame 的小部件。直接使用QFrame即可。

    【讨论】:

    • 我也尝试过直接使用 QFrame,我将我的主小部件设置为这个圆形 QFrame 的父级。我看到我的圆形 QFrame 在一个灰色矩形内,其宽度和高度等于这个圆形框架。我什至尝试为 Base 和 Background 设置透明调色板,但它不起作用。
    • @parveenarora 你能否在你的问题中发布一张图片,说明你得到的结果和你想要达到的结果?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 2013-03-05
      • 2018-03-03
      相关资源
      最近更新 更多