如何在QVideoWidget中添加带图像和透明背景的按钮?

时间:2015-04-29 10:47:31

标签: qt user-interface qt-designer qlabel qpushbutton

我在视频前面创建了一个按钮(使用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

5 个答案:

答案 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;”似乎有效