![]() |
1
7
用 Clutter toolkit(或其他一些canvas widget/toolkit)您可以构建这样的接口。我不建议使用xlib/xcb或drawingarea级别,因为它需要实现已经存在于画布中的许多通用功能。 |
![]() |
2
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网站/
|
![]() |
3
3
你可能会想要 pygame 然后。 |
![]() |
4
1
gtk和pygtk可能是错误的工具。这不是不可能的,因为你可以让你的整个应用程序
|
![]() |
5
1
http://www.oluyede.org/blog/writing-a-widget-using-cairo-and-pygtk-28/ 演示如何使用pygtk和cairo创建一个简单的小部件。 |
![]() |
6
1
最简单的说,你需要一些东西,给你一个边界矩形和自由统治权,以画成你想要的。这种物体通常被称为“画布”。我以前(在ruby中)使用过fxcanvas类 Fox toolkit ,但也有其他可用的工具(例如wxwidgets,但是我没有使用这个工具包的个人经验)。 不过,还是要小心。像这样的低级接口提供了很大的灵活性,但它们也需要您做更多的工作。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 3 月前 |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 4 月前 |
![]() |
Marco · PyCharm Linux系统文件上os.stat异常 5 月前 |