【问题标题】:transparent QLabel with a pixmap带有像素图的透明 QLabel
【发布时间】:2012-05-27 13:30:57
【问题描述】:

我有一个 QLabel,我使用 setpixmap() 在上面放了一个图像。该图像具有 Alpha 通道。

QLabel 位于 QWidget 上,该 QWidget 具有由图像指定的边框图像(以便重新缩放图像以填充 QWidget)。

在QLabel的透明部分,结果不是QWidget上指定的图像,而是“无色”Widget的灰色特征。

我的问题是我如何做到这一点,以使 QLabel 的透明部分显示 QWidget 的边框图像?

我尝试取消自动填充背景,将 QLabel 的背景颜色更改为白色透明,但没有任何帮助。

【问题讨论】:

  • 不确定这是否重要,但您使用的是什么类型的图像(png、jpeg、?)?
  • png,我确定它有 alpha 通道
  • 您能否展示一个重现您的问题的最小示例?
  • 请展示您如何创建“背景”小部件、如何设置其边框、如何创建标签以及如何“插入”它进入那个背景小部件。都是细节问题,我对 QLabels 中的透明 QImage 没有任何问题。
  • (对不起,我输入新行的评论,它发布了它。在做一个最小的例子时,我想我发现了问题。所以,我正在设计 QWidget 根(在树的顶部),显然根小部件没有收到样式表。如果我在上面放一个 QFrame,它已经收到了。这可能吗?

标签: qt


【解决方案1】:

您需要适当地设置小部件属性和窗口标志:

使用QWidget::setAttribute()Qt::WidgetAttribute...

Qt::WA_TranslucentBackground 需要设置为 true。

除了学习Window Flags Example 应该会有很大帮助。

如果您只是在寻找一个可以绘制无框图像的小部件...

这是一个完美的例子:

QSplashScreen Replacement

【讨论】:

    猜你喜欢
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多