我有一个Qt项目,我正在使用QGraphicsView框架,我也有弹出窗口。 (QDialogs)
当有人点击某个按钮时,会出现一个弹出窗口,我正在使用.exec()
方法而不是.show()
来调用它,使其成为活动窗口。另外我想给它一个像lightbox提供的html页面的视觉效果,所以对于用户来说显而易见的是,后台窗口不会进行通信。你知道任何简单的解决方案吗?或者在Qt中难以实现?
编辑:我不知道它是否显而易见,但它是一个桌面应用程序,而不是一个Web应用程序。
答案 0 :(得分:0)
只需在自定义背景和透明度的必要区域上创建QFrame即可。对于动画效果,您可以使用QPropertyAnimation + QGraphicEffects以及qt动画框架中的其他内容。
答案 1 :(得分:0)
现在我找到了另一种方法来实现我想要的。像这样:
QWidget* mytranswidget = new QWidget(mybgwidget);
mytranswidget->setStyleSheet( "background:transparent; background-color:rgba(0,0,0,95)");
mytranswidget->setWindowFlag(Qt::FramelessWindowHint);
mytranswidget->setGeometry(mybgwidget->rect());
mytranswidget->show();
我在弹出窗口小部件的构造函数的开头做它,所以在绘制弹出窗口之前绘制它,所以它将以正确的顺序显示。