qt - 使 QLabel 的像素图透明

标签 qt transparency qpixmap

我有一个带有 QLabel 和像素图的 MainWindow。我想让它透明(或不透明)

我在下面使用以下代码。

ui->label->setAttribute(Qt::WA_TranslucentBackground);
ui->label->repaint();

但是,它似乎不起作用。图像看起来相同,没有任何变化。我还尝试使用以下语句:
    ui->label->setStyleSheet("background-color: rgba(255, 255, 255, 10);");

不幸的是,这似乎也不起作用。

任何人都知道如何使图像透明或使其不那么不透明?

感谢您的时间。

最佳答案

如果您的图像不透明并且您希望它是透明的,您可以执行以下操作:

QLabel *l = new QLabel(this);
QImage image(":/img/myimage.png");
QPainter p;
p.begin(&image);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.fillRect(image.rect(), QColor(0, 0, 0, 50));
p.end();
l->setPixmap(QPixmap::fromImage(image));

关于qt - 使 QLabel 的像素图透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762774/

相关文章:

qt - 当逻辑坐标小且分数时,如何设置 QPainter 窗口?

qt - 如何在 Qt4 OpenGL 应用程序中启用 HiDPI (Retina) 支持?

不影响字体颜色的CSS透明度

three.js - 使用three.js渲染透明对象的两侧时的工件

ios - UIView 透明度会影响应用程序的性能吗?

c++ - 将 Mat 转换为 QPixmap

c++ - QSortFilterProxyModel 和 columnCount

qt - 如何从 QGraphicsItem::paint() 中将 QGLFrameBufferObject 绘制到画家上

javascript - 如何在 QWebEngine 中显示一个 QPixmap?

c++ - Qt 屏幕分辨率启动画面