我在视频前面创建了一个按钮(使用QVideoWidget和QMediaPlayer)。我正在使用具有透明背景的图像来设置图像按钮。
如何将QPush按钮设置为透明,但内部图像是否可见?我尝试将其设置为透明,但图像的背景变为黑色。
我试过这个C++ over Qt : Controlling transparency of Labels and Buttons,但它没有用。我试过这个:
ui->btn_Touchme->setAttribute(Qt::WA_TranslucentBackground);
ui->btn_Touchme->setStyleSheet("QPushButton{background: transparent;}");
ui->btn_Touchme->setAttribute(Qt::WA_NoSystemBackground, true);
ui->btn_Touchme->setAttribute(Qt::WA_TranslucentBackground, true);
它仍然是黑色
我尝试使用QLabel,但结果相同。对我有什么建议吗?
我使用的是qt 5.3.2和ubuntu 14.04LTS
答案 0 :(得分:5)
如果可以将鼠标悬停在按钮上方显示按钮边距,则可以使用设置为QToolButton
的{{1}} autoRaise
。
此外,您也可以设置以下样式表,即使鼠标悬停在按钮上也能保持透明。
true
答案 1 :(得分:2)
我正在使用Ubuntu 16.04 LTS Qt 5.7.0,这对我有用:
更改.ui文件中按钮的样式表:
border: 0px;
background: transparent;
不需要。
答案 2 :(得分:1)
为了使 QPushButton 透明,您还需要将按钮设置为“扁平”:
button->setFlat(true);
button->setStyleSheet("QPushButton { background-color: transparent }");
或者换句话说,将样式表中的边框设置为 0px:
button->setStyleSheet("QPushButton { background-color: transparent; border: 0px }");
我希望这对您和其他可能遇到相同问题的人有用。
答案 3 :(得分:0)
如果使用qt设计器。选择相应的按钮,您必须将属性窗口的最下面的“ flat”更改为true;您的CSS现在可以使用了。
答案 4 :(得分:0)
对我来说“ background-color:rgba(255,255,255,0); border:0px;”似乎有效