2010-03-03 72 views
1

我在使用QGraphicsScene的Qt4中編寫了一個GUI實用程序。其中一個項目在您移動時在水平面中跟蹤鼠標,然後按住修改鍵可以更改項目的旋轉。當旋轉項目時,我希望鼠標光標變成彎曲的箭頭(或其他東西)並在視覺上鎖定,所以移動它會影響項目,但不影響鼠標光標本身。Qt4:在操作QGraphicsItem時鎖定鼠標光標

釋放改性劑將放置(以前看不見)光標回到它的原點:這是爲了防止項目「跳」到鼠標的新水平位置之後,這是我的主要問題。

我真的有不知道如何實現這一點的Qt4不涉及這樣可怕的事情,如:

  • 當按下修改店當前鼠標位置
  • 切換光標沒什麼
  • 位圖
  • 不知何故得出一個假光標在原來的地方(!?)
  • 刪除假光標,做
當切換鼠標的位置回210

非常感謝,如果有人能想到一個更好的方法來實現這一目標。我並沒有太拘泥於整個固定鼠標光標的想法,但它是我能想到用控制方案解決這個問題的唯一方法,否則這個控制方案很好地工作。

編輯:我試過我上面概述的廢話方案,遇到了以編程方式移動鼠標位置的問題。仍然試圖記住我之前使用過類似系統的地方:基本上它是一個旋鈕。您點擊它並上下移動鼠標,旋轉旋鈕。當你釋放鼠標按鈕時,指針返回到你最初放在旋鈕上的位置。

回答

1

如何使用事件過濾器捕獲QMouseEvents,而這是怎麼回事?

+0

非常感謝有用的建議。我查了一下,事件過濾器看起來像是去這裏的最好方法(還有很多其他的東西 - 我以前從未用過它們)。 我嘗試實現我概述的(可怕的)方法,但遇到奇怪的問題試圖操縱實際的鼠標指針(而不是光標)的位置,並最終放棄了一個非常不同的方案,它具有類似的糟糕的代碼味道。 – Mikesname 2010-03-05 22:14:07

+0

順便說一句,我敢肯定,我已經看到了固定光標在Windows上的行動,例如,在軟件合成器等上移動虛擬旋鈕,所以我仍然有興趣知道你是如何做到這一點的。 – Mikesname 2010-03-05 22:16:04