本文“握手”图片已经Clker.com授权
GNODE和KDE两款桌面环境在视觉上的差异是显而易见的,那么如何让一种环境下的应用无误地移植到另一环境下?今天的SuperUser Q&A 板块上有人回答了这个问题。以下Q&A部分已获得SuperUser的授权(SuperUser是Stack Exchange一个版块,Stack Exchange是一个社区化问答网站)。
问题:
SuperUser读者LeNoob想知道KDE下的应用如何运行于GNOME环境下:
GNOME使用GTK+图形库,KDE使用Qt图形库,那么KDE应用如何在GNOME环境下运行,其能够流畅运行的内在机制是什么? |
回答:
SuperUser贡献者grawity作出了如下回答:
这种移植是可能的,因为KDE和GNOME两种桌面环境使用相同的图形系统—X11。所有的图形程序都是通过X11协议与X服务器(通常为Xorg)交互:发送指令绘制屏幕,接收来自输入鼠标、键盘等外设的输入事件。 至于GTK和Qt等UI工具包,它们以链接库的形式被图形程序调用。GNOME环境下,程序使用libgdk和libgtk;KDE环境下,程序使用libQtCore和ligQtGui。这两种工具包都是简单地调用X11函数绘制相应程序的窗口。 大部分现代的工具包(比如GTK,Qt和EFL)都具备绘制功能,它们通常直接将绘制好的窗口发送给X11。相反,一些传统工具包,比如Xaw和Motif,则是发送绘制直线或者矩形的指令给X服务器,然后服务器会解析指令、绘制窗口。 X11协议还涉及窗口管理功能,因此每一个桌面环境都会有一个“窗口管理器”程序。该程序负责绘制窗口框架,并完成窗口的移动以及放大缩小等操作。实际上,当前强大的窗口管理器已经取代了Xorg的工作,能够把所有的窗口合成***显示在屏幕上的图像,这样一来,就可以容易地追加一些阴影等效果。
|
为了更好地兼容,将桌面环境绑定到统一的图形系统是一个很棒的设计。这样一来,你就可以在同一桌面环境下运行所有自己感兴趣的应用了,哪怕这款应用并不是为该桌面环境开发的。
原文链接: howtogeek 翻译: 伯乐在线 - honpey
译文链接: http://blog.jobbole.com/62989/
【编辑推荐】