Ah, maybe because in this example our QWidget is actually a top level Window...
On Fri, Jul 11, 2014 at 11:30 PM, Frank Rueter | OHUfx <fr...@ohufx.com> wrote: > Ah, thanks for confirming that. > > Interestingly I don't get a WindowDeactivate event when I click outside of > the widget. I do get a ActionChanged event though, but that doesn't sound > right for this. > > > > On 12/07/14 1:14 PM, Tony Barbieri wrote: > > Btw, the shadow stuff is actually at the Windows level. You'd have to do > some pretty low level hacks to remove it from what I understand. That or > force everyone to turn off drop shadows in their Windows theme :). > > > On Fri, Jul 11, 2014 at 11:13 PM, Tony Barbieri <great...@gmail.com> > wrote: > >> Yea, that is one downside. We worked around it by doing the following: >> >> class ClosePopupFilter(QtCore.QObject): >> >> def eventFilter(self, target, event): >> if event.type() == QtCore.QEvent.WindowDeactivate: >> target.close() >> return False >> class Popup(QtGui.QWidget): >> >> def __init__(self, parent=None): >> super(Popup, self).__init__(parent) >> >> self.__popup_filter = ClosePopupFilter() >> self.installEventFilter(self.__popup_filter) >> >> >> self.setWindowFlags(QtCore.Qt.FramelessWindowHint | >> QtCore.Qt.WindowStaysOnTopHint | >> QtCore.Qt.CustomizeWindowHint | >> QtCore.Qt.Tool) >> >> >> >> >> On Fri, Jul 11, 2014 at 10:51 PM, Frank Rueter | OHUfx <fr...@ohufx.com> >> wrote: >> >>> Ah, thanks. >>> one issue I see the Qt.Tool flag is that it won't close the widget when >>> I click outside of it, something the Qt.Popup flag does for me. >>> >>> But I guess I can re-implement one of the event handles to reproduce >>> this behaviour. MIght be easier than hunting down whatever would suppress >>> the shadow in the default palette. >>> >>> Cheers, >>> frank >>> >>> >>> On 12/07/14 12:28 PM, Tony Barbieri wrote: >>> >>> Hey Frank, >>> >>> Checkout this page: http://qt-project.org/doc/qt-4.8/qt.html >>> >>> Here is the description for those two flags: >>> >>> Qt::Popup 0x00000008 | Window Indicates that the widget is a pop-up >>> top-level window, i.e. that it is modal, but has a window system frame >>> appropriate for pop-up menus. Qt::Tool 0x0000000a | Window Indicates >>> that the widget is a tool window. A tool window is often a small window >>> with a smaller than usual title bar and decoration, typically used for >>> collections of tool buttons. If there is a parent, the tool window will >>> always be kept on top of it. If there isn't a parent, you may consider >>> using Qt::WindowStaysOnTopHint as well. If the window system supports it, a >>> tool window can be decorated with a somewhat lighter frame. It can also be >>> combined with Qt::FramelessWindowHint. >>> Glad it helped! >>> >>> Best, >>> >>> >>> >>> On Fri, Jul 11, 2014 at 9:54 PM, Frank Rueter | OHUfx <fr...@ohufx.com> >>> wrote: >>> >>>> Great, that did in deed fix it, thanks so much!! >>>> Can somebody explain what those two flags actually try to do? I'm still >>>> finding it difficult to find comprehensive documentation about flags in >>>> general. >>>> >>>> >>>> Cheers, >>>> frank >>>> >>>> On 11/07/14 11:23 PM, Tony Barbieri wrote: >>>> >>>> Hey Frank, >>>> >>>> I'm pretty sure we use the QtCore.Qt.Tool flag rather than the >>>> QtCore.Qt.Popup flag to deal with removing the shadow. If that doesn't >>>> work I can look deeper into how we've dealt with this. >>>> >>>> Best, >>>> >>>> >>>> On Thu, Jul 10, 2014 at 11:15 PM, Frank Rueter | OHUfx <fr...@ohufx.com >>>> > wrote: >>>> >>>>> 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 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> PySide mailing list >>>>> PySide@qt-project.org >>>>> http://lists.qt-project.org/mailman/listinfo/pyside >>>>> >>>> >>>> >>>> >>>> -- >>>> Tony >>>> >>>> >>>> >>> >>> >>> -- >>> Tony >>> >>> >>> >> >> >> -- >> Tony >> > > > > -- > Tony > > > -- Tony
_______________________________________________ PySide mailing list PySide@qt-project.org http://lists.qt-project.org/mailman/listinfo/pyside