情况:
我在QT中有一个Dialog
类,我在上面画了一个正方形的光栅。方块在MySquare
类(MySquare: QGraphicsItem
)中实现。
在MySquare内部有许多功能(mysquare.h protected :)
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
当我点击一个正方形时,它使用以下函数给出了正方形的相对坐标。
void MySquare::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
update();
QGraphicsItem::mousePressEvent(event);
qDebug() << "mouse Pressed";
qDebug() << "coordinates:";
qDebug() << "X:"<< x/w << " Y:" << y/h ;
}
其中x和y是光栅中的x和y位置,w和h代表宽度和高度
但我的问题是如何让我的Dialog类知道点击了哪个方格?
答案 0 :(得分:1)
您可以通过Qt的信号/插槽机制在MySquare
和您的Dialog之间进行通信。
单击一个方块时,它会发出一个信号,而Dialog有一个连接到该信号的插槽。
要识别哪个方形发送信号,有几种可能性:
this
的{{1}}指针传递MySquare
功能确定发出信号的人。