gpt4 book ai didi

android - 显示图像的透明按钮

转载 作者:太空狗 更新时间:2023-10-29 14:51:09 25 4
gpt4 key购买 nike

我想创建一个按钮来显示具有透明背景的给定图像。我正在使用下面的代码段:

ui->setupUi(this);
this->setFixedSize(width, height);

QPixmap* orgPixmap = new QPixmap(":/images/a.png");
QSize size(this->width(), this->height());
QPixmap resizePixmap(orgPixmap->scaled(size));

QPalette palette;
palette.setBrush(this->backgroundRole(), QBrush(resizePixmap));
this->setPalette(palette);

ui->toolButton->setStyleSheet("background-color: rgba(255, 255, 255, 0);");
ui->toolButton->setFixedSize(64, 64);
ui->toolButton->setIconSize(QSize(64, 64));
ui->toolButton->setIcon( QIcon(":/images/add.png") );

在小部件的顶部,我添加了一个带有图标的按钮。这是一个透明背景的蓝色圆圈。但是,当我在 Android 设备上部署和运行我的代码时,该按钮显示为白色不透明背景。

请看图片:

enter image description here

我尝试使用以下代码强制按钮的透明度:

QColor transparent_color(0,0,0,0);
QPalette button_palette(ui->pushButton->palette());

button_palette.setColor(QPalette::Button, transparent_color);
ui->toolButton->setPalette(button_palette);

上面的代码似乎并没有达到我预期的效果。我想知道问题可能是什么以及如何解决。

最佳答案

我看到你需要一个圆形按钮,那么 QWidget::setMask() 怎么样?

QPainterPath path;
path.addEllipse(ui->pushButton->rect());
QRegion mask = QRegion(path.toFillPolygon().toPolygon());
ui->pushButton->setMask(mask);

只是一个想法,我没有测试过。

关于android - 显示图像的透明按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com