Ist Python gut mit QML (Qt-Quick)?

Ich bin Anfänger in Qt-Quick. Ich bin mir nicht bewusst, dass Qt eine Basis für QML ist. Und auch ich bin nicht vertraut mit C ++, die wieder Hauptunterstützung Sprache für Qt und QML ist. Ich bin mir bewusst, dass JS eine Menge Logik in der QML-Schicht selbst machen kann. Aber wenn wir Interaktionen mit OS brauchen, dann müssen wir eine Grundsprache verwenden. Da bin ich mit Python wohl, ich plane für " QML-JS-Python " Kombination.

Also, meine Fragen:

  1. Für fortgeschrittene Applikations- und Spielentwicklung geht Python & Qt-Quick gut in die Hand?
  2. Ist mein Combination Trio (QML-JS-Python) gut genug dafür?
  3. Und muss ich Qt für App-Entwicklung für die Kopplung mit Python von QML lernen?
  4. Wenn ja für Qust 3 dann sollte ich komplette Qt oder nur die wenigen Zeilen Code, die als Kommunikationstür zwischen Python und QML steht?

Sorry, wenn ich dumm bin, diese Fragen zu stellen. Aber ich möchte gerne Vorschläge und Meinungen abgeben.

Bearbeiten: Irgendwelche Einschränkungen für diese Kombination QML-JS-Python

Danke im Voraus

    2 Solutions collect form web for “Ist Python gut mit QML (Qt-Quick)?”

    Auf konzeptioneller Ebene gehen sie sehr gut zusammen. Ich habe ein Python / qml / js / opengl Programm geschrieben, das alles ziemlich schön vereint. Das war mit Qt4.7 und PySide.

    Wenn du nur QML benutzt hast, kannst du die Menge an Qt minimieren, die du ausgesetzt sein musst (obwohl, wie immer, mehr Wissen macht dich mächtiger). Im Wesentlichen, sobald Sie eine qdeclarativeview haben, ist Ihre Qt Arbeit abgesehen von der Signal / Slot-Handling, die eine Freude unter PySide ist. Ich würde vorschlagen, dass Sie mit Python und QML schnell produktiv sein können, ohne sich zu sehr um die Qt-Seite zu kümmern.

    Aus Erfahrung, schlage ich vor, die Abgrenzung zwischen Python und QML klar in Ihrem eigenen Kopf. Ich beschränkte die QML sehr auf die Logik, was sehr gut ist; In Wirklichkeit behandelt das QML, wie die Schnittstelle auf Eingaben reagiert, und dann sendet es Signale zurück an das Hauptprogramm. Es funktioniert ein bisschen wie das Erstellen einer sehr einfachen, abgespeckten Schnittstelle zwischen der Gui und dem Rest des Programms, nur Signalisierung High-Level-Logik (anstatt, zum Beispiel, senden Sie einen Klick, würde es senden ein Signal sagen, zum Beispiel " Schalte die Verarbeitung ein ", die Gui würde sich damit beschäftigen, diese Veränderung zu machen). In meinem Fall steckte das gerade in mein MVC-Framework, aber du kannst es tun, wie es dir gefällt.

    Es gibt eine große fette Einschalung aber in all dem. Die Entwicklung von PySide ist eher inszeniert und unterstützt derzeit nicht Qt5 und all seine QML Verbesserung Güte. Es gab verschiedene Diskussionen darüber, wie es unterstützt werden sollte, aber nicht viel tatsächlichen Code verpflichtet.

    Ich glaube, PyQt unterstützt Qt5, aber dual lizenziert als GPL oder kommerziell (PySide ist LGPL so kann mit geschlossenen Quellcode verwendet werden). Ich habe keine Erfahrung von PyQt, außer es und PySide, die ungefähr Tropfen in Ersetzungen für einander ist.

    Bearbeiten: Es scheint, als würde ich darüber reden, es als MVVM zu benutzen.

    Bearbeiten (irgendwelche Beschränkungen Frage): Die ganze Qt wird durch PySide und PyQt ausgesetzt. Dies bedeutet, dass Sie Erweiterungen in Python schreiben können, wie Sie es in C. Ich schrieb ein Widget, das Maus-Scroll-Ereignisse erfasst, damit ich die Rolle von einem Flickable stehlen konnte. Dies war ein QML-Element in Python erstellt, obwohl ich auch musste es aus Python laden; Ich konnte nicht ganz herausfinden, wie man eine Erweiterung, die ich aus dem QML-Dokument laden konnte. Es ist natürlich möglich, eine C-Erweiterung zu schreiben, die eigenständig zu deinem Hauptcode ist, also hast du immer noch diese Option.

    Ab April 2016 wird PySide nun offiziell von der Qt Company unterstützt.

    Die offizielle Homepage ist hier . LGPL-Lizenzierung ist eine Option, die der Hauptgrund dafür ist, dass das Projekt an erster Stelle erstellt wurde.

    Python ist die beste Programmiersprache der Welt.