2011-06-02 4 views
2

J'essaie de développer une application simple (?) Pour N900 en utilisant Qt, mais je ne sais même pas quand commencer. Je veux appuyer n'importe où dans l'écran, garder cette position, rendre un objet via OpenGL ES, puis pouvoir le sélectionner et modifier son apparence. Alors, mes questions:Qt + OpenGL ES + N900

  1. D'après ce que j'ai lu N900 ne prend pas en charge les événements tactiles. Néanmoins, les exemples tactiles qui existent dans QtSDK (presque) ont fonctionné pour moi. Dois-je aller à QGesture alors ou peut-être avec QtMouse pour le taraudage (ou QTouchEvent)?
  2. En supposant que j'ai les coordonnées de position taraudé, je devrais plus tard les transformer de coordonnées d'écran en coordonnées d'objet, si je comprends bien, non?
  3. Pour la partie 'picking object', OpenGL ES 2.0 prend-il en charge le buffer de sélection? Ou sinon, comment cela pourrait-il être mis en œuvre (ray tracing)?

Tout indice pour me lancer serait très apprécié!

Répondre

0
  1. QTouchEvent est exactement ce qui n'est pas supporté par le N900. Vous devez utiliser QMouseEvent, qui sont remis à QWidget ou QGraphicsSceneMouseEvent, qui sont remis à QGraphicsScene.
  2. QMouseEvent contient globalPos() et pos(), donc vous n'avez normalement pas besoin de faire de conversion. Mais il y a QWidget :: mapToGlobal() et des amis permettant ces conversions. QGraphicsView a mapFromScene et mapToScene dans le même but.
+0

Merci beaucoup divanov, après vos conseils je me suis concentré principalement sur l'exemple QMouseEvent et j'ai réussi à mettre quelques choses dans un ordre. Dans les deux cas (si j'utilise QGraphicsScene ou non), en supposant que j'ai 3 QGLWidgets dans ma scène et que je veux le faire pivoter, dois-je implémenter un signal pour chaque widget ou y at-il un moyen de faire tourner la scène? (parce que d'après ce que je comprends, je devrais soit définir un widget central dans le premier cas ou définir la fenêtre d'affichage à l'un de mes QGLWidgets dans le cas QGraphicsScene). Merci encore! (De toute façon je choisis cette réponse car elle m'a donné des conseils) – Bob

+0

Il n'y a pas de moyen facile de faire pivoter QWidget, mais pour QGraphicsView avec QGraphicsScene c'est aussi facile que d'appeler QGraphicsView :: rotate() (http://doc.qt.nokia .com/latest/qgraphicsview.html # rotation) – divanov