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

Tony Barbieri greatrgb at gmail.com
Sat Jul 12 04:28:51 CEST 2014


Hey Frank,

Checkout this page: http://qt-project.org/doc/qt-4.8/qt.html

Here is the description for those two flags:

Qt::Popup0x00000008 | WindowIndicates 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::Tool0x0000000a | WindowIndicates 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 <frank at 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 <frank at 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 at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/pyside
>>
>
>
>
>  --
> Tony
>
>
>


-- 
Tony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20140711/4558aa6f/attachment.html>


More information about the PySide mailing list