[PySide] how to suppress qwidget's drop shadow under windows?

Frank Rueter | OHUfx frank at ohufx.com
Fri Jul 11 05:15:12 CEST 2014


Hi all,

I was given some code that uses a QWidget, makes it completely 
transparent, then adds a custom paintEvent to draw some custom items.
This is meant or a fancy right click menu. Under OSX it ll looks swell, 
but under windows I get the default drop shadow, because of the 
QtCore.Qt.Popup flag.
e.g.:
class MyMenu(PySide.QtGui.QWidget):

   def __init__(self):
     QtGui.QWidget.__init__(self)
     self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
     self.setWindowFlags(QtCore.Qt.Popup | QtCore.Qt.FramelessWindowHint)

w = MyMenu()
w = show()

What is the easiest way to turn off that off (drop shadows for 
transparent widgets just look irritating :-D )? I guess I could inherit 
from QMenu instead of QWidget but would expect more work to get it to 
it's current state and am not entirely sure if that would fix the issue.

Any ideas?

Cheers,
frank








More information about the PySide mailing list