2011-09-04 14 views
18

Estoy a punto de portar una de mis aplicaciones Mac a Windows. La aplicación Mac utiliza los marcos nativos Cocoa/Appkit de Apple para la interfaz de usuario. La interfaz de usuario es el código Obj-C, y la funcionalidad de la aplicación central es el código portátil C++.¿Las aplicaciones Qt se ven y se sienten nativas en Windows?

Ahora estoy buscando una forma de portar la aplicación a Windows y hacer que se vea y se sienta como nativa para los usuarios de Windows. Mis elecciones son el MFC de Microsoft y el marco Qt. Aunque estoy seguro de que las aplicaciones MFC tienen el aspecto original, lo que recuerdo de la codificación MFC es que el marco en sí es horrible. Eché un vistazo a Qt y me gusta desde la perspectiva del desarrollador.

Pero como no soy usuario de Windows, no tengo idea de si las aplicaciones Qt tienen un aspecto nativo de Windows.

Así que mi pregunta: ¿Puedo hacer (sin un lote de trabajo) una aplicación Qt se comporta y parece que fue escrito con los marcos nativos de Windows?

Respuesta

23

Puede cambiar fácilmente el estilo de una aplicación Qt. En Windows y Mac, el estilo predeterminado es usar las funciones nativas para dibujar ventanas, controles y similares.

Además, Qt toma muchas medidas para que incluso los aspectos más pequeños de una aplicación (cosas que ni siquiera pensaría) emulen el comportamiento nativo de una plataforma específica. Entonces, su aplicación Qt también puede reemplazar su aplicación actual de Mac cuando se transfiere.

Le aconsejo extremadamente que no use MFC, lo lamentará (especialmente si nunca trabajó con la API Win32 nativa). Es todo lo contrario de Qt con respecto a la flexibilidad y la facilidad de uso.

+2

Si consulta la fuente de Qt, verá que estas declaraciones son engañosas. Qt vuelve a implementar el aspecto de Windows. Si llamara a las funciones nativas de la GUI, estos estilos no funcionarían en Linux, por ejemplo. Más exactamente, usa funciones nativas de gráficos rasterizados. – user1095108

+1

@ user1095108 Creo que estás pensando en el tema "Windows 95" de Qt? Esa es de hecho una emulación. Pero los temas nativos en realidad * no * funcionan en Linux o en otro lugar que no sea Windows. –

+0

Quise decir 'QWindowsStyle' que es la base de' QWindowsXPStyle' y 'QWindowsVistaStyle', no sabía que era '95. ¿Cómo puede decir "tema"? Es un estilo. – user1095108

3

Debería echar un vistazo a Style reference. Sí, es posible, y no, no requiere mucho trabajo (en absoluto).

13

como se puede leer en doc.qt.io:

Qt Los widgets son elementos de la interfaz de usuario tradicionales típicos encuentran en entornos de escritorio. Los widgets se integran bien a la plataforma subyacente que proporciona look'n'feel nativo en Windows, Linux y Mac OSX.

Tome un vistazo a Qt Widget Gallery:

apoyo de Qt para estilos de componentes y temas permite a su uso encajar con el entorno de escritorio original.

Usted puede estar interesado en una presentación llamada How to Make Your Qt Application Look Native:

Qt utiliza las API de los indios en cada plataforma compatible, sin embargo hay algunos trucos adicionales que puede utilizar para asegurarse de que su Qt-basa la aplicación se ve, se siente y se comporta mejor. Esta presentación será , ejecútese ejemplos, consejos y tics para ayudarlo a que sus aplicaciones se vean geniales en todas las plataformas.

1

No, NO lo hacen. Está cerca, pero los controles parecen no nativos.Lo que las personas quieren decir es que usa la API de Win32 para representar los controles de forma similar a cómo Windows procesa los controles nativos para que el rendimiento sea comparable.

Solo marcos específicos de Windows como .NET Windows Forms usan los controles Win32 nativos reales para elementos comunes de UI.

+0

No solo marcos específicos de Windows usan la API nativa. También hay frameworks multiplataforma como wxWidgets the do. –

2

Se ven un poco y no se sienten mucho.

Especialmente si diseña la aplicación teniendo en cuenta las ventanas (como lo hace con el cacao). Todavía no he visto cintas (hay un clon comercial de terceros) y el estilo MFC azul/negro o una vista de lista en la vista de iconos agrupados.

Lamentablemente, WxWidgets también es muy feo de programar. Mejor que MFC seguro. Solo quedan dos opciones si desea una aplicación nativa real, MFC (si necesita una solución rápida y pequeña) o .NET (si no le importa la velocidad).

Una empresa anterior tenía una capa de 50000 LOC en la parte superior de MFC que era necesaria para poder programar este marco de 1992 un poco más cómodo). Lamentablemente, no conozco nada disponible en el mercado que haga lo mismo.

La pregunta es si sus clientes realmente aprecian un aspecto nativo que se convierta en un factor de venta o no. Ahora estoy usando QT porque es lo suficientemente bueno.

+0

Otro punto a tener en cuenta, para algunas aplicaciones, el mismo usuario lo usará en diferentes sistemas operativos al mismo tiempo, y puede apreciar las aplicaciones * propias * apariencia que son consistentes en todas las plataformas. – hyde

+1

es Qt, no QT (Tiempo rápido). – jaskmar

+0

¿cuál es el tiempo rápido? :RE – dani

Cuestiones relacionadas