2010-08-07 9 views
8

Hoy traté de implementar el soporte del elemento de menú dibujado por el propietario en Cocoa y MacOSX 10.5¿QT tendrá un futuro como kit de herramientas GUI en MacOSX?

Y lo que encontré fue bastante aterrador cuando pienso en QT que tenía la intención de usar para otros proyectos.

Si lo veo bien, no hay futuro para QT en MacOSX porque todo el Administrador de Apariencia con la excepción de algunas funciones triviales está completamente obsoleto en 10.5 (ya no puedo encontrar una URL pública) e incluso el La lista de colores "Desarrollador" y las "constantes" de color en NSColor están marcadas como no estables y no se usan.

Con esta política, un Toolkit como QT no tendría otra opción que soltar el soporte de MacOSX que tiene sentido para Apple en más de una forma (recuerde que Nokia es un competidor). Y Apple tampoco se preocupó por eliminar Carbon y Java.

Así que echo de menos algo. ¿Hay algún tipo de gerente de Apariencia de Cacao o cualquier técnica que el equipo de QT pueda usar con un respaldo razonable? Tengo miedo de que en 10.7 o 10.8 la apariencia sea muy diferente.

Y por favor todas las personas que quieran cerrar esta pregunta como subjetiva tenga en cuenta que estoy pidiendo un trabajo técnico para solucionar este problema. No es una discusión sobre lo bueno o lo malo, pero si hay una forma de evitar esta limitación.

Es una decisión comercial seria para mí que puede costar fácilmente decenas de miles de dólares si se hace mal y confiar en que QT resulta ser un fracaso.

EDIT: Este es un enlace que me dice que incluso los colores del sistema ya no son compatibles Accessing System Colors. Y es correcto que un cambio de tema a grafito no resulte en una notificación de cambio de lista de colores.

+0

¿Cuál es exactamente el problema? Hay una versión Cocoa de Qt que se ejecuta en 10.6. – andref

+0

¿Qué quieres decir con la versión Cocoa? ¿Un QT que solo usa NSView y un cuadro de diálogo NSOpenPanel? Esto no será de ninguna ayuda en absoluto. Una versión de Cocoa tiene que usar todos los widgets de Cocoa y este no es el concepto detrás de QT.NSView es lo mismo que usar HWND en Windows o una ventana en X11. – Lothar

+0

Ah, ya veo lo que quieres decir. Lo que desea saber es si hay una alternativa de Cocoa a HITheme (que es lo que Qt usa para hacer el dibujo encima de NSViews desnudas) en caso de que Apple elimine el carbono para siempre (que aún no lo ha hecho, vea iTunes). Reformulando la pregunta para que suene más Cocoa y menos Qt podría atraer el interés del tipo correcto de personas. – andref

Respuesta

3

Dejé de intentar hacer que QT parezca nativo. No funcionará nunca porque existen demasiados comportamientos sutiles que ningún conjunto de herramientas multiplataforma puede imitar lo suficiente como para engañar a los usuarios. Si el objetivo es una aplicación nativa, será mucho más fácil dedicar un poco más de tiempo a crear interfaces nativas para las plataformas que desee.

Lo que me impedía descargar QT no era familiar con Xcode y Objective-C. Probablemente ya sepa esto, pero puede cambiar el nombre de cualquier archivo Objective-C (.m) en Xcode para compilarlo como Objective-C++ (.mm). Esto le permite vincular todo el código C++ que desee, justo donde lo necesita en su proyecto.

+0

Todavía usaría Qt para Windows, creo. Está lo suficientemente cerca allí, y los estándares son más bajos, y es menos frustrante trabajar con ellos. –

+0

puede dejar una línea sobre cuáles son los comportamientos sutiles más molestos. – Lothar

+0

@tewha: Sí, pensé lo mismo y luego vinieron Windows Vista, Ribbons, la nueva herramienta de acoplamiento, colores de Word 2007 y todas las demás cosas en MFC Feature Pack. Odio MFC pero me temo que QT ya no es muy nativo, dependiendo del curso en el tipo de aplicación que estás escribiendo. – Lothar

0

Firefox está en cierto modo en el mismo barco, ya que se basan principalmente en el cacao. Su implementación del motor de tema OS X se puede ver aquí.

  1. http://mxr.mozilla.org/mozilla2.0/source/widget/src/cocoa/nsNativeThemeCocoa.mm
  2. http://mxr.mozilla.org/mozilla2.0/source/widget/src/cocoa/nsNativeThemeCocoa.h
  3. http://mxr.mozilla.org/mozilla2.0/source/gfx/cairo/cairo/src/cairo-quartz-surface.c

Ellos están confiando en El Cairo (un API de dibujo independiente de la plataforma) sentado sobre cuarzo para realizar su prestación.

Cuestiones relacionadas