Gtk+vs enlaces de lenguaje Qt
binding (5)
En pocas palabras: para aquellos familiarizados con las vinculaciones de lenguaje en Qt y Gtk +. Por ejemplo, python y ruby. ¿Hay alguna diferencia de calidad o capacidad?
Más antecedentes: sé C ++ y Qt muy bien. Experiencia mínima con Gtk +. Sé que C ++ no es ideal para enlaces de lenguaje debido a la falta de un ABI bien definido (interfaz binaria de aplicación). También leí que Gtk + se diseñó para vincularse a otros idiomas. Entonces me pregunto cómo esto se manufa en la práctica. ¿Las encuadernaciones Gtk + se mantienen mejor o funcionan mejor de alguna manera que sus equivalentes Qt?
Actualmente estoy bastante interesado en el lenguaje Go, y han comenzado a desarrollar enlaces Gtk +. Sin embargo, las vinculaciones de C ++ están muy lejos. Me hace preguntarme si vale la pena aprender Gtk +.
Creo que las vinculaciones de GTK son más antiguas que las de Qt (y por lo tanto un poco más maduras) pero ambas son utilizables y tu conocimiento previo de Qt debería ser el factor principal en tu elección.
Desarrollé pequeñas GUIs usando tanto Qt como GTK con sus enlaces de python y encontré los dos equivalentes. Sin embargo, algunos lamentan las vinculaciones de PyQt con el contenedor Qt (QVector, ...) que no están traducidas a la estructura de datos de python normal y, por lo tanto, agregan un poco de complejidad al código. No recuerdo los mismos problemas usando PyGTK.
He estado probando algunas combinaciones en torno a Qt: RubyQt, JRuby + Jambi, PyQt. El primero termina rápidamente en varias fallas de segmentación. Mis habilidades de Qt pueden ser el problema, pero todas las fallas seg no son del todo legibles. El foro para RubyQt está casi muerto, así que no esperes encontrar mucha información allí.
Entonces me mudé a JRuby + Jambi. Esto funcionó hasta bien, alcancé algunas funciones faltantes aquí y allá. Además, tuve que implementar una señal / conexión adecuada para JRuby. Entonces, más o menos un truco. No es convincente.
Finalmente me mudé a Python (que no me gusta mucho). Pero woooh, qué diferencia. Las vinculaciones están actualizadas, aún tengo que anunciar una falla de segmetatio, los mensajes de error son la mayoría de las veces muy explicativos. Por lo que a mí respecta, Python + Qt es un claro ganador.
Tenga en cuenta que estaba probando estas combinaciones para encontrar un lenguaje apropiado / qt vinculante para que pueda crear una producción lista con mis horas de conmutación (aproximadamente 2 horas por día). Entonces, mi tolerancia a problemas pequeños pero molestos como las fallas de segmentación es 0. También tengo que desarrollarme en Windows y Linux. Entonces la instalación de Windows es necesaria (y una vez más, Python es un claro ganador aquí).
He trabajado tanto con PyQt como con PyGTK y diría que ambos se mantienen y sincronizan regularmente con sus frameworks principales. Sin embargo, y esto es completamente subjetivo, me pareció más gratificante trabajar con PyGTK que con PyQt, incluso si no había escrito ningún código con GTK. Si conoces bien a Qt, ve con Qt sin embargo.
He usado GTK y Qt en C ++ y también PyGTK y PyQt en Python de manera bastante extensa.
Qt supera a GTK, es una API mucho más flexible, moderna y limpia. GTK también carece de algunas características que son importantes para mí. Desde el punto de vista del marco, recomendaría Qt.
En cuanto a las vinculaciones de langauge (solo puedo hablar sobre Python, ya que nunca he usado los equivalentes de Ruby), creo que PyGTK (usando Glade y un envoltorio como Padraig Bradys libglade ) hacen que la programación de GUI sea increíblemente fácil y divertida. Sin embargo, si puede GPL su software (o pagar la tarifa de la licencia), entonces PyQt también es una buena opción, y aunque no es tan amigable como PyGTK + Glade (en eso con GTK puede definir su UI en Glade como un XML separado archivo, para que pueda modificar la interfaz de usuario sin tocar el código, en Qt si desea utilizar QtDesigner, tiene que generar código utilizando uic, si mal no recuerdo) la API en sí es realmente agradable de usar y refleja el diseño limpio de Qt frameworks muy cercano.
Sobre todo, probablemente recomendaría usar PyQt sobre PyGTK, pero puedo estar predispuesto ya que prefiero Qt a GTK hoy en día, aunque puedes probar ambos y elegir cuál prefieres; ambos son casi triviales para que funcionen.
Si está buscando un excelente libro sobre PyQt, recomiendo la programación rápida de GUI con Python y Qt .
Para resumir: IMHO Qt supera a GTK en calidad y capacidad. PyGTK y PyQt son de excelente calidad y capacidad refleja el marco subyacente, aunque PyGTK puede cargar archivos Glade xml.
hay enlaces C ++ gtk +. Google para gtkmm.