brilliant, that was precisely what I was just trying to do. Thanks
heaps, you just saved me an hour of research and testing. I assumed
there was going to be an event handler I could simply re-implement to
get this behaviour, so would have looked in the wrong direction.
Cheers!
frank
On 12/07/14 1:13 PM, Tony Barbieri 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 <mailto: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 <mailto: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 <mailto: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 <mailto:PySide@qt-project.org>
http://lists.qt-project.org/mailman/listinfo/pyside
--
Tony
--
Tony
--
Tony
_______________________________________________
PySide mailing list
PySide@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside