2014-01-16 56 views
0

這是我的問題,我完全想要一個建議,這對我很有幫助。如何通過點擊獲取物品的id值

我想在我的情節中添加兩個項目(例如兩個svg項目)。第一項是ID1,第二項是ID2。

當我點擊第一個svg項目時,它應該發出一個信號。同樣,當我點擊第二個svg項目時,它應該發出另一個信號。但我不想使用項目的座標。

我的目標是這樣的,當我點擊它們時,項目必須向我說出他們的ID。 **但我不想使用項目的座標。我無法弄清楚,請給我一個建議。

問候。

+0

你如何表示你的svg對象?信號如何連接? – prajmus

回答

1

恐怕沒有辦法處理座標,因爲QwtPlotItem只處理繪畫事件。 Qwt不會將鼠標事件路由到項目,因此您需要手動實現此行爲。

  • 在圖的canvas()上安裝事件過濾器並攔截鼠標事件。
  • 使用QwtPlot::invTransform將鼠標座標轉換爲對應於x和y軸的值。
  • 迭代QwtPlot::itemList並檢查每個項目的QwtPlotItem::boundingRect是否包含點擊點。
+0

謝謝你的回答。目前我正在使用與您的答案相同的方法。我正在根據xml文件中的數據繪製這些項目。我的意思是座標正在隨機變化。所以我認爲我應該繪製沒有座標。我的大腦停在這一點。 – alperyazir

相關問題