如何获得一个;灯箱“;Qt的类行为

如何获得一个;灯箱“;Qt的类行为,qt,lightbox2,Qt,Lightbox2,我有一个Qt项目,我在其中使用QGraphicsView框架,我在场景中也有弹出窗口。(QDialogs) 当有人单击某个按钮时,会出现一个弹出窗口,我用.exec()方法而不是.show()调用它,使其成为活动窗口。另外,我想给它一个视觉效果,就像为html页面提供的一样,这样对用户来说也很明显,背景窗口将无法通信。你知道任何简单的解决办法吗?还是很难在Qt中实现? 编辑:我不知道它是否明显不是,但它是一个桌面应用程序,而不是一个web应用程序。只需在必要的区域创建QFrame,并自定义背景和

我有一个Qt项目,我在其中使用QGraphicsView框架,我在场景中也有弹出窗口。(QDialogs)

当有人单击某个按钮时,会出现一个弹出窗口,我用
.exec()
方法而不是
.show()
调用它,使其成为活动窗口。另外,我想给它一个视觉效果,就像为html页面提供的一样,这样对用户来说也很明显,背景窗口将无法通信。你知道任何简单的解决办法吗?还是很难在Qt中实现?
编辑:我不知道它是否明显不是,但它是一个桌面应用程序,而不是一个web应用程序。

只需在必要的区域创建QFrame,并自定义背景和透明度即可。对于动画效果,您可以使用QPropertyAnimation+QGraphicEffects和qt动画框架中的其他内容。

现在我找到了另一种方法来实现我想要的。像这样:

QWidget*mytranswidget=newqwidget(mybgwidget)
mytranswidget->setStyleSheet(“背景:透明;背景颜色:rgba(0,0,0‌​,95)");
mytranswidget->setWindowFlag(Qt::FramelessWindowHint)
mytranswidget->setGeometry(mybgwidget->rect())
mytranswidget->show()


我在弹出窗口小部件的构造器的开头做这个,所以它是在绘制弹出窗口之前绘制的,所以它将以正确的顺序显示

我试过这个代码之王,但它对我来说不太管用。你是这个意思吗?(对不起,我对Qt有点生疏)
QFrame*myframe=newqframe(mybackgroundindow);Qpalete调色板(Qt::透明);调色板。设置颜色(Qpalete::,QColor(119136153))//这是一个灰色的框架->设置调色板(调色板);frame->setGeometry(mybackgroundwindow->rect());框架->显示()到底什么不起作用?你想用什么样的视觉效果?现在我找到了另一种方法来实现我想要的。如下:
QWidget*mytranswidget=newqwidget(mybgwidget);mytranswidget->setStyleSheet(“背景:透明;背景颜色:rgba(0,0,0,95)”;mytranswidget->setWindowFlag(Qt::FramelessWindowHint);mytranswidget->show()我在弹出窗口小部件的构造器开始时做,所以它在绘制弹出窗口之前被绘制,所以它将以正确的顺序显示。