Pregunta

voy a diseñar OgreWidget clase -Un widget de renderizado portátil con Qt.

(Con mi diseño), creo que mi clase debe ser heredada con QThread (para bucle de renderizado infinito) y QWidget (Widget de destino para que ogro se represente allí).

Pero según mucha documentación y artículos (por ejemplo este), herencia virtual con QObject no es apoyado .El resultado de esta herencia será el siguiente error:

QObject es una base ambigua de OgreWidget

¿Cómo debo resolver este problema?

PD:En mi antiguo diseño, creo un separado QWidget y enviarlo WId para mi OgreWidget como widget de destino.Sin embargo, ahora voy a diseñar una interfaz mejor y más limpia.

¿Fue útil?

Solución

Eso es imposible, porque ambos QThread y QWidget al final decide QObject clase base

Este hilo responde a tu pregunta:¿Cómo puedo heredar tanto de QWidget como de QThread?

Otros consejos

El QThread La documentación es engañosa, no es necesario ni debería subclasificarse. QThread aquí para su widget.

"Lo estás haciendo mal" - http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/

Deberías:

  • Crear un QThread ogreThread, crea tu ogreWidget y ogreWidget.moveToThread(&ogreThread), o
  • Crear un QThread contenedor que le permite decirle que cree un nuevo objeto de tipo T directamente en el nuevo hilo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top