Qt So finden Sie ein Objekt in einem Widget mit der Position x () und y ()

8

Ich habe ein MainWindow. Auf MainWindow habe ich mehrere Qlabel's. Jetzt muss ich herausfinden, dass QLabel geklickt hat. Mit MousePressEvent kann ich die X () und Y () Position der Maus anklicken.

Wie kann ich diese Koordinate verwenden, um das QLabel zu identifizieren?

Gibt es eine Funktion in QT, um das Objekt zu finden, das mit X () und Y () koordiniert wurde?

    
skg 10.09.2012, 11:22
quelle

4 Antworten

9

Da QLabel eine Unterklasse von QWidget ist, können Sie Mausdrücken in QLabel :: mousePressEvent

verarbeiten %Vor%

Aber in QMainWindow können Sie childAt verwenden, um die untergeordneten Widgets bei x, y

abzurufen %Vor%

Lesen Sie mehr unter: Ссылка

    
Ahmad Mushtaq 10.09.2012, 11:34
quelle
4

In Qt5 funktioniert das auch

%Vor%     
Yash 28.06.2014 08:37
quelle
1

Verwenden Sie die Funktion widgetAt in QApplication

%Vor%

was dann dynamic_cast in QLabel .

bedeutet     
ismail 10.09.2012 11:29
quelle
1

Anstatt zu versuchen, zu identifizieren, welches Label von Mauskoordinaten angeklickt wurde, könnten Sie alternativ auch ein Label verwenden: mousePressEvent() Methode.

Erstellen Sie beispielsweise Ihre eigene überladene Beschriftungsklasse und geben Sie in mousePressEvent() ein clicked() -Signal aus, das Sie dann an einen Slot binden können.

    
Bart 10.09.2012 11:32
quelle

Tags und Links