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

vee*_*vee 1 user-interface qt qt-designer qlabel qpushbutton

我在视频前面创建了一个按钮(使用QVideoWidget和QMediaPlayer).我正在使用具有透明背景的图像来设置图像按钮.

如何将QPush按钮设置为透明,但内部图像是否可见?我尝试将其设置为透明,但图像的背景变为黑色.

在Qt上尝试过这个C++:控制标签和按钮的透明度,但它不起作用.我试过这个:

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);
Run Code Online (Sandbox Code Playgroud)

它仍然是黑色的

我尝试使用QLabel,但我得到了相同的结果.对我有什么建议吗?

我使用的是qt 5.3.2和ubuntu 14.04LTS

jem*_*n99 6

为了使 QPushButton 透明,您还需要将按钮设置为“扁平”:

button->setFlat(true);
button->setStyleSheet("QPushButton { background-color: transparent }");
Run Code Online (Sandbox Code Playgroud)

或者换句话说,将样式表中的边框设置为 0px:

button->setStyleSheet("QPushButton { background-color: transparent; border: 0px }");
Run Code Online (Sandbox Code Playgroud)

我希望这对您和其他可能有同样问题的人有用。


Lah*_*ima 5

如果可以将鼠标悬停在按钮上显示按钮边距,则可以使用QToolButtonwith autoRaise设置为true.

此外,您还可以设置以下样式表,即使鼠标悬停在按钮上也可以使按钮保持透明.

ui->btn_Touchme->setStyleSheet("background-color: rgba(255, 255, 255, 0);");
Run Code Online (Sandbox Code Playgroud)