我有一个主窗口。在主窗口上我有多个 Qlabel。现在,我需要找到单击的 QLabel。 使用MousePressEvent,我可以获得鼠标单击的X()和Y()位置。
我如何使用这个坐标来识别QLabel?
QT中有没有函数可以使用X()和Y()坐标查找点击的对象?
最佳答案
由于QLabel是QWidget的子类,因此您可以在QLabel::mousePressEvent中处理鼠标按下事件
virtual void mousePressEvent ( QMouseEvent * ev )
但是在 QMainWindow 中,您可以使用 childAt 来获取 x,y 处的子窗口部件
QWidget * QWidget::childAt ( int x, int y ) const
QLabel* label= static_cast<QLabel*>(mainWindow->childAt(x,y));
关于Qt 如何使用 x() 和 y() 位置在小部件上查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350658/