2013-07-30 88 views
1

所以我目前正在製作拼字遊戲與QgraphicsItems Qt網格拖放

和我有一個網格QGraphicsScene它。網格由包含變量的定製QGraphicsItems的圖塊構成。

現在我還有另一個自定義的QGraphicsItem,它們是應該放置在貼圖上的字符(所以其他QGraphicsItems)。如何讓用戶使用某種拖放機制將字符放置在磁貼上?

在此先感謝

回答

1

假設用戶使用鼠標進行移動的人物,當他們拖着一個字符後鬆開鼠標,搜索最近的網格項目的位置,然後將瓷磚動畫到該位置,可能QGraphicsItemAnimation。

+0

那個搜索功能應該是場景的一部分嗎? –

+1

這取決於您的類層次結構的總體設計。理想情況下,我會盡量保持QGraphicsScene和QGraphicsView儘可能乾淨,並將其用作用戶輸入和其他類之間的接口,但是可以將其作爲場景的一個函數,因爲它實際上是基於項目的輔助函數在現場。 – TheDarkKnight

+0

你並不需要爲最近的網格項目進行「搜索」,只需要用鼠標位置(釋放鼠標按鈕時)調用'QGraphicsView :: itemAt(const QPoint&)'作爲參數並將其作爲參數將返回網格項目。 –