В X есть одна проблема с этим подходом, которую вы, возможно, не приняли во внимание. Размер шрифта измеряется в точках (одна точка составляет 1/72 дюйма) и, таким образом, изменяется (в пикселях) в зависимости от разрешения и размера монитора. Текстовые строки также будут различаться по длине в зависимости от языка, поэтому на самом деле невозможно определить, насколько большими должны быть кнопки и тому подобное. Общие графические наборы инструментов для X разработаны с учетом этого. Кроме того, было бы просто написать свой собственный движок тем для GTK, который рисует все виджеты именно так, как вы хотите (используя Cairo [1] или GDK [2]), и заставлять ваше приложение всегда использовать эту тему. Возможно, ваше приложение также сможет установить размер шрифта по умолчанию (в точках) на основе DPI, чтобы всегда получать одинаковый размер в пикселях (и, конечно, не делать ваше приложение переводимым).
Существует как минимум пара графических интерфейсов, использующих этот идеальный по пикселям подход, основанный на SDL [3], например, AGAR [4], PicoGUI [5] и Guichan [6]. Большинство из них написаны на C ++, а некоторые на C, и, насколько я знаю, ни у одного из них нет привязок для Python или Ruby. Затем, используя SDL, вы можете иметь только одно окно верхнего уровня, что означает, что ваше приложение (или набор инструментов GUI, который вы используете) должны выполнять свое собственное управление окнами для различных диалогов и тому подобное. Но я думаю, это было то, что ты намеревался в любом случае.
[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