for creator python qml qt-quick

for - qt creator python



¿Python va bien con QML(Qt-Quick)? (2)

A nivel conceptual, van muy bien juntos. He escrito un programa en python / qml / js / opengl que combina todo muy bien. Eso fue con Qt4.7 y PySide.

Si solo estás usando QML, puedes minimizar la cantidad de Qt al que deberás estar expuesto (aunque, como siempre, más conocimiento te hace más poderoso). Esencialmente, una vez que tiene una vista qdeclarative, su trabajo Qt se realiza aparte del manejo de la señal / ranura, que es una alegría en PySide. Yo sugeriría que pueda ser productivo rápidamente usando Python y QML sin preocuparse demasiado por el lado Qt de las cosas, recogiéndolo según sea necesario.

Por experiencia, sugiero que la demarcación entre Python y QML quede clara en su propia mente. Limité mucho el QML a la lógica gui, que funciona muy bien; en efecto, el QML maneja la forma en que la interfaz responde a las entradas y luego envía las señales al programa principal. Funciona un poco como crear una interfaz muy básica y reducida entre la interfaz gráfica de usuario y el resto del programa, solo señalizando lógica de alto nivel (en lugar de, por ejemplo, enviar un clic, enviaría una señal diciendo, por ejemplo, " activar el procesamiento ", la interfaz gráfica de usuario se ocuparía de cómo representar ese cambio). En mi caso, esto se conectó directamente a mi marco MVC, pero puedes hacerlo como quieras.

Hay una gran advertencia de grasa en todo esto. El desarrollo de PySide se ha estancado y actualmente no es compatible con Qt5 y todas sus mejoras de QML. Ha habido varias discusiones sobre cómo se debe admitir, pero no se ha confirmado mucho código real.

Creo que PyQt es compatible con Qt5, pero con doble licencia como GPL o comercial (PySide es LGPL, por lo que puede usarse con código fuente cerrado). No tengo experiencia de PyQt, aparte de eso y de que PySide se redujo aproximadamente en reemplazos entre sí.

Edición: Parece que estoy hablando de usarlo como MVVM .

Editar (cualquier pregunta sobre limitaciones): todo Qt está expuesto a través de PySide y PyQt. Esto significa que puede escribir extensiones en Python como lo haría en C. Escribí un widget que capturaba eventos de desplazamiento del mouse para poder robar el desplazamiento de un Flickable. Este fue un elemento QML creado en Python, aunque también tuve que cargarlo desde Python; No pude entender cómo crear una extensión que pudiera cargar desde dentro del documento QML. Por supuesto, es posible escribir una extensión C que sea independiente de su código principal, por lo que siempre tendrá esa opción.

Soy un principiante en Qt-Quick. No tengo conocimiento de Qt, que es la base de QML. Y tampoco estoy familiarizado con C ++, que es, de nuevo, el lenguaje principal para Qt y QML. Soy consciente de que JS puede hacer mucha lógica en la capa QML. Pero si necesitamos interacciones con el sistema operativo, entonces tenemos que usar algún lenguaje base. Como me siento cómodo con Python, estoy planeando la combinación " QML-JS-Python ".

Entonces, mis preguntas:

  1. Para aplicaciones avanzadas y desarrollo de juegos, ¿Python y Qt-Quick van bien de la mano?
  2. ¿Mi Combination Trio (QML-JS-Python) es lo suficientemente bueno para esto?
  3. ¿Y necesito aprender Qt para el desarrollo de aplicaciones para acoplar con Python desde QML?
  4. Si la respuesta es sí para Qust 3, ¿debería aprender Qt completo o solo esas pocas líneas de código que constituyen la puerta de comunicación entre Python y QML?

Lo siento si soy tonto al plantear estas preguntas. Pero me gustaría recibir sugerencias y opiniones.

Edición: cualquier limitación para esta combinación QML-JS-Python

Gracias por adelantado


A partir de abril de 2016, PySide now cuenta con el respaldo oficial de Qt Company.

La página de inicio oficial está here . La licencia LGPL es una opción, que parece ser la razón principal por la que se creó el proyecto en primer lugar.