In X gibt es ein Problem mit diesem Ansatz, das Sie möglicherweise nicht berücksichtigt haben. Die Schriftgröße wird in Punkten gemessen (ein Punkt ist 1/72 Zoll) und variiert daher in Pixelgröße mit Auflösung und Monitorgröße. Die Länge der Textstrings variiert auch in Abhängigkeit von der Sprache, so dass es nicht wirklich möglich ist zu bestimmen, wie groß Schaltflächen und Ähnliches sein müssen. Die üblichen GUI-Toolkits für X wurden in diesem Sinne entwickelt. Abgesehen davon wäre es einfach, eine eigene Theme-Engine für GTK zu schreiben, die alle Widgets exakt nach Ihren Wünschen zeichnet (mit Cairo [1] oder GDK [2]) und Ihre Anwendung immer dieses Theme verwendet. Vielleicht wäre es auch möglich, dass Ihre Anwendung die Standardschriftgröße (in Punkten) basierend auf der DPI so einstellt, dass sie immer dieselbe Größe in Pixeln erhält (und Ihre Anwendung natürlich nicht übersetzbar macht).
Es gibt mindestens ein paar GUIs, die diesen pixelperfekten Ansatz basierend auf SDL [3] verwenden, zum Beispiel AGAR [4], PicoGUI [5] und Guichan [6]. Die meisten davon sind in C++ und einige in C geschrieben und soweit ich weiß, hat keiner von ihnen Bindings für Python oder Ruby. Dann können Sie mit SDL nur ein Top-Level-Fenster haben, was bedeutet, dass Ihre Anwendung (oder das von Ihnen verwendete GUI-Toolkit) ein eigenes Fenster verwalten muss, das für verschiedene Dialoge und dergleichen verwaltet. Aber ich nehme an, das war es, was Sie eigentlich wollten.
[1] cairographics.org/
[2] library.gnome.org/devel/gdk/unstable/index.html
[3] www.libsdl.org/
[4] libagar.org/
[5] picogui.org/
[6] guichan.sourceforge.net/wiki/index.php/Main_Page
Wow! Clutter sieht gut aus! Danke Dmitry! Gibt es einen Grund, warum ich es nicht benutzen sollte? – splicer