2011-06-02 87 views
2

我正在嘗試爲使用Qt的N900開發一個簡單的(?)應用程序,但我甚至不知道什麼時候開始。 我想在屏幕上的任何地方點擊,保持這個位置,通過OpenGL ES渲染一個對象,然後選擇它並修改它的外觀。 所以,我的問題:Qt + OpenGL ES + N900

  1. 從我讀過N900不支持觸摸事件。不過,QtSDK中存在的觸摸示例(幾乎)適用於我。我應該去QGesture,還是用QtMouse進行攻擊(或QTouchEvent)?
  2. 假設我有敲擊的位置座標,我應該稍後將它們從屏幕座標轉換爲對象座標,如果我理解正確的話,對吧?
  3. 對於'picking object'部分,OpenGL ES 2.0是否支持select buffer?否則,如何實施(光線追蹤)?

任何暗示讓我開始將非常感謝!

回答

0
  1. QTouchEvent正是N900不支持的。您應該使用傳遞給QWidget或QGraphicsSceneMouseEvent的QMouseEvent,這些傳遞給QGraphicsScene。
  2. QMouseEvent包含globalPos()和pos(),所以你通常不需要做轉換。 但是有QWidget :: mapToGlobal()和允許這些轉換的朋友。 爲了同樣的目的,QGraphicsView有mapFromScene和mapToScene。
+0

非常感謝divanov,在您的建議之後我主要關注QMouseEvent示例,並且我設法按順序放置了一些東西。在任何一種情況下(即,如果我使用QGraphicsScene),假設我場景中有3個QGLWidgets,並且我想旋轉它,我應該爲每個小部件實現一個信號,還是有一種方法可以將場景全部旋轉? (因爲根據我的理解,我應該在前一種情況下定義一箇中央控件,或者將視口設置爲QGraphicsScene案例中的一個QGLWidgets)。再次感謝! (無論哪種方式,我選擇這個答案,因爲它給了我指導) – Bob 2011-06-03 23:26:34

+0

有沒有簡單的方法來旋轉QWidget,但對於QGraphicsView與QGraphicsScene它就像調用QGraphicsView :: rotate()(http://doc.qt.nokia .COM /最新/ qgraphicsview.html#旋轉) – divanov 2011-06-04 09:21:23