2013-01-05 24 views
2

情況主類:在Qt告訴一個項目被點擊

我有一個QT類Dialog上我畫正方形的柵格。正方形在MySquare類中實現(MySquare: QGraphicsItem)。

的MySquare裏面有許多功能(mysquare.h保護:)

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 ; 
} 

enter image description here

其中X和Y是在光柵和W和H立場寬度和高度x和y位置

但是我問題是我怎樣才能讓我的對話類知道廣場被點擊了什麼?

回答

1

您可以通過Qt的信號/插槽機制在MySquare和您的對話框之間進行通信。 當正方形被點擊時,它發出一個信號,並且對話框有一個連接到該信號的插槽。

爲了鑑定其中方發送的信號,有幾種可能性:

  • 方形的座標沿信號
  • this指針發射的信號中的MySquare的是通過通過
  • 在插槽中,您可以使用sender函數來確定誰發出信號。
相關問題