Qt Developer Days 2014: Javascript-Clients für Qt-Server-Software

Qtwebchannel ermöglicht C++-Anwendungen die Kommunikation mit Javascript-Clients, die Objekte wiederverwenden können. Dank Websockets kann das Projekt theoretisch auf Sprachen wie Python oder Ruby erweitert werden.

Artikel veröffentlicht am ,
Qt Webchannel verbindet C++ mit Web-Anwendungen.
Qt Webchannel verbindet C++ mit Web-Anwendungen. (Bild: qt.io)

Um die Fülle der Javascript-Frameworks einfach in Verbindung mit komplexen Qt-Anwendungen zu verwenden, kann mit dem Ende dieses Jahres erwarteten Qt 5.4 das Webchannel-Modul genutzt werden. Das Projekt ermöglicht die Kommunikation zwischen Javascript-Clients und Qt-Anwendungen und ist für einen KDAB-Kunden entstanden, wie Mitentwickler Milian Wolff erklärt, der es auf den diesjährigen Qt Developer Days vorstellt. Der Kunde habe für die grafische Darstellung auf Webtechniken zurückgreifen und Objekte aus dem C++-Backend weiterverwenden wollen.

Stellenmarkt
  1. IT-Systemadministrator Production (m/w/d)
    cadooz rewards GmbH, München
  2. Software-Entwickler (m/w/d) Prozessmesstechnik
    Berthold Technologies GmbH & Co. KG, Bad Wildbad
Detailsuche

Qt Webchannel kann zur Kommunikation zwischen Client und Server-Anwendungen eingesetzt werden, wobei sowohl Text als auch Binärobjekte gesendet und empfangen werden können. Zur Übertragung der Daten zwischen Backend und Anwendung selbst können entweder Websockets oder auch die Interprozesskommunikation (IPC) genutzt werden, die in den Multi-Prozessarchitekturen von Webkit 2 sowie dem Google-Fork Blink vorhanden sind.

Objekte mit Methoden und Eigenschaften überführen

Die Webchannel-Technik erlaubt dabei das Weiterleiten eines QObjects samt Methoden, Signalen und Eigenschaften durch eine Serialisierung des Metaobjects, das den Zugriff auf die eben genannten Dinge ermöglicht. Auf der Seite des Clients wird aus diesen Daten ein dynamisches Javascript-Objekt erzeugt, das die API des Server-Objekts spiegelt.

Im Javascript Client können so die Eigenschaften gelesen oder mit neuen Werten besetzt werden. Zudem lässt sich eine Methode aufrufen, die auf dem Server ausgeführt wird, und der Client erhält dann den Rückgabewert. Darüber hinaus können Javascript-Funktionen genutzt werden, um den Client mit einem Qt-Signal zu verbinden. Die Umsetzung dieser Möglichkeiten erfordert neben dem Einfügen der bereitgestellten Javascript-Bibliothek aber noch vergleichsweise viel eigene Programmierarbeit, was sich in Zukunft jedoch ändern soll, wie Wolff versichert.

Golem Akademie
  1. Azure und AWS Cloudnutzung absichern: virtueller Zwei-Tage-Workshop
    25.–26. November 2021, virtuell
  2. CEH Certified Ethical Hacker v11: virtueller Fünf-Tage-Workshop
    8.–12. November 2021, Virtuell
Weitere IT-Trainings

Der Javascript-Client kann derzeit in einer Anwendung mittels QtWebkit oder auch einem beliebigen Browser verwendet werden. Eine Client-Implementierung im QML mit QtQuick2, die auf Websockets aufbaut, ist ebenso möglich. Mit der neuen auf Blink basierenden Qt Webengine werde die Technik offiziell erst mit Qt 5.5 im nächsten Jahr genutzt werden können, da die Entwickler die Frist zum Einreichen neuer Funktionen in Qt 5.4 knapp verpasst hätten, so Wolff.

In seinem Vortrag demonstriert Wolff außerdem einen Webchannel-Client, der auf Node.js basiert, sowie die Verwendung mehrerer Clients, die sich mit dem gleichen Server verbinden. Neben Codeoptimierungen sind weitere neue Funktionen geplant, wie die Unterstützung von Qt Webview für Android und iOS in Qt 5.5. Wolff kann sich allerdings auch vorstellen, dass die Client-Funktionen für weitere Programmiersprachen wie etwa Python oder Ruby geschrieben werden, da die Websockets eine einfache Möglichkeit dafür böten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Apple
Notch des Macbook Pro legt sich über Inhalte

Erste Käufer des neuen Macbook Pro berichten von einer schlechten Software-Anpassung. So legt sich die Notch über Menüs oder den Mauszeiger.

Apple: Notch des Macbook Pro legt sich über Inhalte
Artikel
  1. Impfnachweise: Covid-Zertifikat für Adolf Hitler aufgetaucht
    Impfnachweise
    Covid-Zertifikat für Adolf Hitler aufgetaucht

    Im Internet sind gefälschte, aber korrekt signierte QR-Codes mit Covid-Impfnachweisen aufgetaucht.

  2. Windows XP: Das Drehbuch für Dune wurde mit MS-DOS-Programm geschrieben
    Windows XP
    Das Drehbuch für Dune wurde mit MS-DOS-Programm geschrieben

    Eric Roth verwendet seit Jahren den Movie Master für MS-DOS. Auch Dune schrieb er mit dem 30 Jahre alten Editor - und einer IBM Model M.

  3. Precobs: Polizei verzichtet auf Prognose-Software gegen Einbrecher
    Precobs
    Polizei verzichtet auf Prognose-Software gegen Einbrecher

    Nach sieben Jahren beendet die Polizei in Bayern die Nutzung einer Prognose-Software. Die Ergebnisse waren am Ende zu schlecht.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Samsung 4K-Monitore & TVs günstiger (u. a. 50" QLED 2021 749€) • Seagate Exos 18TB 319€ • Alternate (u. a. Asus B550-Plus Mainboard 118€) • Switch OLED 369,99€ • Neues Xiaomi 11T 256GB 549,90€ • Ergotron LX Desk Mount Monitorhalterung 124,90€ • Speicherprodukte von Sandisk & WD [Werbung]
    •  /