c++ - QT: shaded window effect (lights out) -


i'm opening modal window main window , interest make background dark top window visible main 1 looks dark in "shade".

you can show half-transparent widget on mainwindow , create shadow effect.

for example, such widget.

class overlay : public qwidget { public:   overlay(qwidget *parent) {     setpalette(qt::transparent);     setattribute(qt::wa_transparentformouseevents);   }  protected:   void paintevent(qpaintevent *event) {     qpainter painter(this);     painter.setrenderhint(qpainter::antialiasing);     painter.setbrush(qbrush(qcolor(0,0,0, 150)));     painter.setpen(qt::nopen);     painter.drawrect(rect());   } };     

then create widget, resize , show:

overlay_.reset(new overlay(this)); overlay_->resize(size()); overlay_->setvisible(true); 

you can play shadow color , transperancy changing brush in paintevent. hope effect wished.


Comments