About

This page contains a single entry from the blog posted on June 14, 2009 10:51 PM.

The previous post in this blog was Ruby + Subversion.

The next post in this blog is Good old Legacy Systems (tm).

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31

« Ruby + Subversion | Main | Good old Legacy Systems (tm) »

Ruby + Qt4

Ich habe heute wieder einmal ein Wenig mit Qt4 gespielt, diesmal jedoch nicht mehr mit C++, sondern Ruby. Die Voraussetzungen dazu beschränken sich auf die zu installierende Bibliothek libqt4-ruby und natürlich die Qt4 API-Referenz. Fazit: Sehr cool, die Eleganz von Ruby gepaart mit der mächtigen Qt-Bibliothek macht richtig Lust auf schöne Multiplatform-Desktop-Applikationen.

Die von QtRuby (libqt4-ruby) zur Verfügung gestellten Qt-Bindings orientieren sich zu sagen wir mal 98% an den Original-APIs, mit der Ausnahme dass das "Q" in denn C++-Klasssennamen durch ein "Qt::"-Prefix ersetz wurde. Was ich allerdings als weniger hübsch empfinde, ist die konsequente Weiterverwendung von camelCase auch bei Methodennamen -- es steht keine Rubyesquere under_score-Variante zur Verfügung.

Anders sieht das aus bei den Qt-/KDE-Ruby-Bindings in der Korundum-Bibliothek. korundum4 ist eine m.E. etwas weiter fortgeschrittene Qt-Schnittstelle für Ruby, die zusätzlich die umfangreichen KDE-Erweiterungen der Qt-Bibliotheken zur Verfügung stellt. Außerdem wird Camelcase und Underscore-Schreibweise bei allen Methodennamen gleichermaßen unterstützt und "Setter" werden wie gewohnt über "value = " (und zusätzlich über "setValue()") angeboten.

Während QtRuby konsequent auf Ruby-Datentypen setzt, verwendet Korundum (noch) eigene Wrapper-Datentypen an Stellen, wo die C++ API einen Pointer erwartet. So würde ein Aufruf von Qt::FontDialog.getFont(my_boolean, Qt::Font.new("Helvetica", 10), self) in Korundum so aussehen: Qt::FontDialog.getFont(Qt::Boolean.new, Qt::Font.new("Helvetica", 10), self). Dies soll sich laut Dokumentation aber in Zukunft ändern. Bis auf diese Dinge lassen sich Programme, die für QtRuby geschrieben wurden, auch mit Korundum weitestgehend ohne Änderungen auch mit Korundum betreiben.

Ein paar hilfreiche HowTos:

Happy Hacking!

TrackBack

TrackBack URL for this entry:
http://www.innoq.com/movabletype/mt-tb.cgi/3096

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)