Qt如何使用x()和y()位置在窗口小部件上查找对象

skg*_*skg 10 qt

我有一个MainWindow.在MainWindow我有多个Qlabel.现在,我需要找到QLabel点击.使用MousePressEvent,我可以点击鼠标的X()和Y()位置.

我怎样才能使用这个坐标来识别QLabel?

在QT中是否有任何函数可以找到使用X()和Y()坐标单击的对象?

Ahm*_*taq 12

由于QLabel是QWidget的子类,因此您可以在QLabel :: mousePressEvent中处理鼠标按下事件

virtual void mousePressEvent ( QMouseEvent * ev )
Run Code Online (Sandbox Code Playgroud)

但在QMainWindow中,您可以使用childAt来获取x,y的子窗口小部件

QWidget * QWidget::childAt ( int x, int y ) const

QLabel* label= static_cast<QLabel*>(mainWindow->childAt(x,y));
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请访问:http: //doc.qt.io/qt-5/qwidget.html#childAt