2011-11-14 86 views
0

我對Qt真的很陌生,我不想要任何複雜的東西。我所需要的是能夠聲明某種矩形,然後能夠點擊並繪製矩形。Qt點擊畫布

我找到的教程都沒有包含任何可以點擊對象的東西(我想盡可能區分鼠標左鍵和右鍵並獲得點擊座標和任何後續移動)。

繪畫教程展示瞭如何直接在窗口或對話框上繪畫,但我已經放置了一些按鈕來幫助控制。

我不認爲繪圖部分是問題,它更多的是點擊部分。我需要創建一個新的QWidget?這很難嗎?

回答

2

有幾種不同的方法可以自定義繪圖。我會從高層次的大致責令其低級別:

  1. 使用Qt Quick的/ QML/QDeclarative。 QML允許您使用Javascript並提供對標準Qt API的訪問。如果你的需求很簡單,基本的直線等,這可能是一個非常簡單的方法來編寫你的應用程序。請參閱QML Examples.
  2. 使用QGraphicsScene和QGraphicsView。您需要了解使用該模型和視圖的模型和視圖,但這會爲您提供所有需要繪製的任何架構和支持。請參閱Graphics View examples
  3. 子類QWidget並自己實現繪圖和鼠標處理。如果您的需求非常基本,這種相當低級的方法可能非常簡單。使用這種方法,您可以控制所有內容,並最終需要將座標轉換爲屏幕上繪製的內容。 Tetrix example可能是一個很好的起點。

隨着最後一種方法,你需要實現,以獲得進入鼠標事件正確的虛擬方法:

virtual void mouseMoveEvent (QMouseEvent * event) 
virtual void mousePressEvent (QMouseEvent * event) 
virtual void mouseReleaseEvent (QMouseEvent * event) 

您還需要通過重寫來實現自定義的繪畫paint eventAnalogClock example詳細介紹了自定義繪畫的所有步驟。