In meinem Projekt verwende ich ein EventFilter
für Widgets, die sich in QHBoxLayout
befinden.
Wenn ich auf ein Widget geklickt habe, möchte ich ein transparentes Overlay mit blauer Farbe über das angeklickte Widget zeichnen. Gibt es eine Möglichkeit, dies zu implementieren?
Grüße
Diese Antwort ist in einer Reihe meiner Overlay-bezogenen Antworten enthalten: zuerst , zweite , dritte .
Eine Möglichkeit, dies zu tun ist:
Ein halbtransparentes Overlay-Widget, das auch für Mausereignisse transparent ist.
Verfolgen Sie im Ereignisfilter die Klicks und die Größenanpassung der Objekte, indem Sie die Geometrie des Overlays an die des Zielwidgets anpassen.
Das in sich abgeschlossene Beispiel funktioniert sowohl unter Qt 4 als auch Qt 5 und macht was Sie wollen.
%Vor%
Im Überlagerungswidget-Konstruktor:
%Vor%In dem Fenster, das dieses Widget besitzt:
%Vor%