Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/08/2016, 11:51
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Qt. Detectar item al pasar el ratón sobre él

Hola xKuZz:

Muchas gracias por responder.
Al final, sobre la forma 1, por un lado, realmente yo capturo el evento scenePos(). El problema era que tenía dibujada una cruceta que se mueve de forma solidaria con el puntero, y claro....siempre encontraba un item!

Aclarado esta parte, sigo sin saber por qué a mi no me funciona la cosa de forma correcta.

Ahora, desactivando el item de la cruceta, sólo me funciona si
1.- Tengo reimplementada la función mouseMoveEvent() en la subclase que deriva de QGraphicsScene
2.- Tengo reimplementados los métodos "Hover" en la subclase que deriva de QGraphicsEllipseItem.

Y encima de todo no va bien, ya que sólo reacciona al paso del puntero cuando toca otro widget, si no es así, es como si no hubiera pasado nada.


Miro y remiro tu código, que de todas formas es mas o menos como yo lo tengo, y no veo nada diferente.

Sólo se me ocurre que la forma en la que añado objetos a la escena pueda no ser la correcta. Me explico (y de paso pido ayuda por si este método no es muy correcto):

En la clase derivada de QGraphicsScene, tengo un puntero del tipo micirculo y a forma de añadir círculos a la Escena es:

-Al primer toque del ratón, creo el objeto micirculo a partir del puntero (implementado en mousePressEvent() de la clase derivada QGraphicsScene)
Algo como:
Código C++:
Ver original
  1. micirculo* c = new micirculo(event->scenePos());
  2. addItem(c);
-Al mover el ratón, y si hay un círculo, éste cambia el tamaño (implementado en mousePressEvent() de la clase derivada QGraphicsScene)
-Al volver a presionar el ratón, el puntero usado para crear el círculo apunta a nullptr de nuevo, quedándose el circulo creado con su tamaño definitivo y perteneciendo ahora a la escena (por eso entiendo que puedo volver a apuntar a nullptr ya que a partir de ahora ese objeto ya no depende del puntero sino de la escena)

En fin, sólo se me ocurre que este método de alguna forma impida el normal funcionamiento de las funciones del ratón (creo que estoy diciendo una tontería, pero como ya llevo dos días enredando con esto, me da por pensar cualquier cosa por absurda que sea)
__________________
Mi calculadora en Qt

Última edición por dehm; 11/08/2016 a las 12:02