[Interest] Semi transparent background for contextual menu

Etienne Sandré-Chardonnal etienne.sandre at m4x.org
Fri Mar 17 20:03:34 CET 2017


Child widget transparency is rendered by Qt styles directly. On the other
hand, on a top level window, transparency must be handled by the system.
This is completely different.

It is actually possible but more complicated to make transparent windows,
look for WA_TranslucentBackground.

Cheers,

Etienne

2017-03-17 9:59 GMT+01:00 Nicolas Krieger <
nicolas.krieger-medecom29 at orange.fr>:

> Hi,
>
> Thank you for the answer. I made it work with your help, but I lost the
> transparency of  the popup.
>
> If the widget has a parent, there is transparency, but I lost the
> Qt::ActiveWindowFocusReason when I lost focus
> Le 16/03/2017 à 22:38, Etienne Sandré-Chardonnal a écrit :
>
> I forgot, in order to detect when the window lost "focus" (ie is no longer
> the active window), you need to catch QFocusEvent, and check if reason() is
> Qt::ActiveWindowFocusReason
>
> Cheers,
>
> Etienne
>
> 2017-03-16 22:34 GMT+01:00 Etienne Sandré-Chardonnal <
> etienne.sandre at m4x.org>:
>
>> Hi,
>>
>> That's because a context menu is a system level window, not a widget.
>> And what you call focus is in fact not focus, but active window. See
>> QApplication::activeWindow
>>
>> You create such a window by creating a QWidget with no parent and a
>> WindowFlag:
>>
>> QWidget(0, Qt::Popup);
>>
>> 2017-03-16 15:56 GMT+01:00 Nicolas Krieger <nicolas.krieger-medecom29 at ora
>> nge.fr>:
>>
>>> Hi,
>>>
>>> I try to have a contextual menu with a semi-transparent background. I
>>> didnt manage to to it with QMenu, so I decided to use a custom widget.
>>>
>>> I have no problem to have a widget with a semi-transparent background, I
>>> just changed the alpha of the background color.
>>>
>>> My problem is that I want this widget to behave like a contextual menu,
>>> that is to say, I want it to be closed when focus is lost. But this is lot
>>> as soon as I clic on a children-widget of this menu. I don't know how to do.
>>>
>>> Nicolas Krieger
>>>
>>> _______________________________________________
>>> Interest mailing list
>>> Interest at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>>
>>
>>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170317/b95a6cfb/attachment.html>


More information about the Interest mailing list