spl*_*cer 7 linux x11 gtk user-interface xlib
我想构建一个GUI,每个像素都在我的控制之下(即不使用GTK +提供的标准小部件).Renoise就是我想要制作的一个很好的例子.
是获得Xlib或XCB级别的最佳方式,还是可以通过GTK +等更高级别的框架实现这一目标(甚至可能是PyGTK)?我应该在开罗看画吗?
如果可能的话,我想在Python或Ruby中工作,但C也很好.
小智 5
在X中,这种方法存在一个问题,您可能没有考虑到这一问题.字体大小以点(一个点为1/72英寸)测量,因此(像素)大小随分辨率和显示器大小而变化.文本字符串的长度也会因语言而异,因此无法确定按钮的大小和需要的大小.X的常见GUI工具包的设计考虑到了这一点.除此之外,为GTK编写自己的主题引擎很容易,它可以完全按照您的需要绘制所有小部件(使用Cairo [1]或GDK [2])并使您的应用程序始终使用该主题.也许您的应用程序也可以根据DPI设置默认字体大小(以磅为单位),以便始终获得相同的像素大小(当然也不会使您的应用程序可翻译).
至少有一些GUI使用基于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