Zeichnen Sie rechteckige Überlagerung auf QWidget bei Klick

8

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

    
501 - not implemented 05.10.2013, 16:15
quelle

2 Antworten

10

Diese Antwort ist in einer Reihe meiner Overlay-bezogenen Antworten enthalten: zuerst , zweite , dritte .

Eine Möglichkeit, dies zu tun ist:

  1. Ein halbtransparentes Overlay-Widget, das auch für Mausereignisse transparent ist.

  2. 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%     
Kuba Ober 05.10.2013, 19:40
quelle
0

Im Überlagerungswidget-Konstruktor:

%Vor%

In dem Fenster, das dieses Widget besitzt:

%Vor%     
Phlox Midas 28.02.2017 17:24
quelle

Tags und Links