查看: 3623|回复: 13

闲聊linux下的桌面视窗库

[复制链接]
  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-6-4 18:35:28 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 de6ian 于 2014-6-4 18:37 编辑

         说到linux下的桌面环境不得不提到Qt和gtk+,前后者在桌面环境设计中都有著名的作品:KDE与GNOME。就Qt和gtk+本身而言,二者都具备移植性,由于我只有移植qt的函数库的经历,因此对于gtk+的移植的难以程度是否和qt的相当在此玖不评论。之所以选择qt来移植看中它号称的“一次编写,到处编译”,足矣见的其移植性的强大。这里注意,由于Qt自身的发展情况,出于对最开始的图形视窗需求的初衷开发的qt函数库,随着时间推移到现在以及变得及其庞大(涉及到数据库、网络库等),原先模块对象的分类、依赖结构以及通信机制会随着版本的不同而不同。换句话说,对于目前的版本Qt5就和Qt4有一些差异。
           我们以linux平台下的X视窗为例,由于个人电脑的普及,对于一般人不可能要求在操作linux下像电影里的电脑高手或者工程师一样命令行。高效和直观相辅相成更适合自己。因此,X视窗就渐渐出现在我们的视野。我电脑下的x视窗是x11,也就是它的第十一个版本,相信大部分的发行版都是x11视窗。在此做个简单的理解,x11的模型是服务器和客户端模型,服务器就一个,而客服可以是qt、可以是gtk+甚至是其他的较为高级的图像库。x11所扮演的角色只是提供最简单、最粗线条的一个视窗框架,它叫Xlib,是x11下最低层次的API库。qt和gtk+这些客户(对于x11而言)利用x11的xlib,进行进一步封装,使得自己用起来更好。
           对于GNOME而言,Gnome库在最高层,包括帮助例程,类和特殊的 widget,并为应用程序提供一个基础架构。第二层是GTK,它是GTK+库的一部分。这个库提供了基本的工具包和widget来创建 GUI应用程序。大多数GUI是直接用GTK编写的。GTK同时为Gnome库提供了一个功能强大的对象系统。 再下一层是GDK,它简单 的对X函数库进行了包装,只有在我们进行特殊绘画或设置窗口的特殊属性的时候才会用到它.  最下面一层是Glib,它是C的一个实用程序 库,包括可移植性和一些实用程序功能,以及一些容器类,例如:链表,可变数组,变长字符串,HASH西表),缓存,一个事件循环和其他有用的结构。对于Qt而言,模块化的划分更为清晰,核心模块也是对xlib进行的封装。
             对于我们而言,大多数时候编写的程序都是用户程序,因此如果在gnome环境下,安装qt后编译运行的程序就是gnome-like了,但是如果你拿到kde桌面下,你就回看到它华丽的一面。对于我个人而言,在桌面管理上更喜欢gnome,特别是开启gnome classic(gnome3也蛮华丽的),更简洁更纯粹。KDE的话在opensuse下用过一段时间,太华丽也太复杂了对我而言。但是在开发界面的时候,选择qt,看中的就是模块丰富。比如opencv的highgui是基于gtk+的,里面仅仅实现几个简单的鼠标键盘等时间驱动,然而嵌入到qt的框架下后可以使用更多丰富的事件驱动机制。


    参考:http://blog.csdn.net/onlyou930/article/details/6457938
               
    http://zh.wikipedia.org/wiki/Qt
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-11-24 17:07
  • 签到天数: 1771 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-6-4 22:42:53 | 显示全部楼层
    linux X.png
    如何
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2014-6-4 23:04:57 | 显示全部楼层
    shepherd 发表于 2014-6-4 22:42
    如何

    unity实在是用不惯,gnome3的里面也有个类似这样的面板,但我一般切classic。ubuntu下的字体显示的比我的更cute一点。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2014-6-4 23:09:16 | 显示全部楼层
    gnome 3.4.2 classic
    2014-06-04 23:06:07的屏幕截图.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2014-8-9 19:59
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-6-4 23:35:22 | 显示全部楼层
    l这些界面,有时看不惯啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2014-6-5 07:18:41 | 显示全部楼层
    pleasemissme 发表于 2014-6-4 23:35
    l这些界面,有时看不惯啊

    总会有一款你喜欢的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-11-24 17:07
  • 签到天数: 1771 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-6-5 09:13:47 | 显示全部楼层
    de6ian 发表于 2014-6-4 23:09
    gnome 3.4.2 classic

    你这是多宽的屏,看起来好长啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-11-24 17:07
  • 签到天数: 1771 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-6-5 09:15:11 | 显示全部楼层
    de6ian 发表于 2014-6-4 23:09
    gnome 3.4.2 classic

    除了浏览网页和搜索信息,不然一般都是切换到command line,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2014-6-5 09:46:21 | 显示全部楼层
    shepherd 发表于 2014-6-5 09:13
    你这是多宽的屏,看起来好长啊

    笔记本外扩的一个显示屏,工作更有效率~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2014-6-5 09:50:07 | 显示全部楼层
    shepherd 发表于 2014-6-5 09:15
    除了浏览网页和搜索信息,不然一般都是切换到command line,

    从你的unity的dock看出来了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 03:02 , Processed in 0.200090 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.