【问题标题】:QWidget transparent background (but not the children)QWidget透明背景(但不是孩子)
【发布时间】:2012-07-26 04:30:33
【问题描述】:

我有一个 QWidget,它的布局中包含一个 QPixmap 和一个 QComboxBox。我想将小部件的背景设置为透明(但我想正常显示QPixmapQComboBox)。我该怎么做?

【问题讨论】:

    标签: qt background qwidget


    【解决方案1】:

    你可以使用属性

    widget->setAttribute(Qt::WA_NoSystemBackground);
    

    Qt documentation

    表示小部件没有背景,即当小部件 接收绘画事件,背景不会自动重绘。 注意:与 WA_OpaquePaintEvent 不同,新暴露的区域永远不会被填充 带有背景(例如,在第一次显示窗口之后 用户可以“看穿”它,直到应用程序处理 绘画事件)。此标志由小部件的作者设置或清除。

    【讨论】:

      【解决方案2】:

      这在 QWidget 文档中有很好的解释: http://doc.qt.io/qt-5/qwidget.html#transparency-and-double-buffering

      【讨论】:

      • 两个链接都已失效,这就是为什么答案不应仅包含链接而应包含相关信息本身的原因。
      • 我同意这是个问题。但是,此处要求的信息不是很具体,文档对此进行了很好的解释。无需在此重复。我更新了文档的链接。
      • 不过,解释并没有真正的帮助或工作。我添加了一个 QGraphicsView 到一个透明小部件,但尽管设置了图形视图的 Qt::WA_PaintOnScreen 属性,它仍然像它所在的小部件一样透明。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2011-07-06
      • 1970-01-01
      • 2018-10-29
      • 2012-07-27
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多