我正在尝试做一个简单的应用程序 MainWindow,我有一个按钮。单击 QDialog 后,它会打开。我想让 QDialog 透明,但它不起作用。
void MainWindow::on_pushButton_clicked()
{
QDialog *qd = new QDialog();
//QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect;
//opacityEffect->setOpacity(0.5);
//qd->setGraphicsEffect(opacityEffect);
qd->setFixedSize(this->width(),this->height());
//qd->setPalette(QPalette(QPalette::Window,QColor(0,0,0,128)));
//setAttribute(Qt::WA_TranslucentBackground);
//qd->setWindowFlags(Qt::FramelessWindowHint);
//setWindowFlags(Qt::FramelessWindowHint);
this->setWindowOpacity(0.5);//this actually works
qd->setWindowOpacity(0.5); //this is not working
//qd->setStyleSheet("background:transparent;background-color:rgba(0,0,0,95)");
// qd->repaint();
qd->show();
}
其余的都是简单的 GUI 项目,并添加了带有插槽 clicked() 的按钮。是否可以使 QDialog 透明?我留下了评论行,看看我是如何尝试做的,但没有效果。
这是 qt 5.1.0 的一个问题,我已经发布了一个错误并且状态已解决,因此在新版本中一切都会好起来的。