Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530716
  • 博文数量: 237
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 22:02
个人简介

目前在一家公司担任软件总监,主要涉及智能手机,笔记本电脑的开发

文章分类

全部博文(237)

文章存档

2024年(18)

2023年(68)

2022年(13)

2021年(7)

2020年(11)

2019年(3)

2018年(10)

2017年(8)

2012年(7)

2011年(4)

2010年(32)

2009年(41)

2008年(6)

2007年(9)

分类: LINUX

2009-11-02 22:37:17

qt :
 1 signal /slot 机制 : 更灵活的对象间通讯,需要用到meta对象,要用moc 编译
   这有别于GTK的signal /Callback function 方式
 
 2 国际化和本地化
   利用tr函数 , linguist等工具,locale等
 3 plug-in
   包括style plugin , keyboard plug in ...
 4 MV 模式
   MVC : Model , View ,Control
   Model指的是数据,View 指的是界面,Control指的是用户输入
   Qt 把View + Control合在一块(这样实现简单些),变成MV模式
5 XML ,SQL 等的支持
  对于XML 支持DOM/SAX两种方式
  DOM
  SAX :简单 快,操作麻烦
  DOM : 树结构, 消耗内存大
6 network support
  比如QHTTP , QFTP
 
QT embedded :
1 干掉了X server , 实现QWS server
  server 负责cursor , screensave , key , mouse .
2 没有专门的server ,应用程序启动 -qws 则是server ,所以代码里有很多地方判断是否是server
3 server ,client 间 socket 通讯
4 对于Graphic Rendering, 每个应用程序自己画,然后server copy到framebuffer中
  具体如下:
    窗口A ---> Memory A
    窗口B --> Memory B
    窗口C --> Memory C
  当window A 要求更新的时候, 它发送一个请求给 server
  server 就开始计算,windw A的那些区域要更新. (因为可能window A 被 window B 覆盖了一部分
比如 :
 
    如上图,window A的右半部分被B覆盖,此时server只copy 左半部分,绿色的那块区域)
 
 
5 实现qvfb (x86平台) 来模拟调试
  这个非常好,很多其他的GUI 系统,比如LGUI , minigui没有实现qvfb , 此时要在PC上看,必须要切换到console下面,也就是PC机启动的时候以Framebuffer方式启动,而非X window . 这样很麻烦,开发和调试环境要切换来切换去,毕竟很多人不喜欢在文本模式下编写代码,而喜欢在x window下用source insight等来编写 .
  原理是这样的 :
  qvfb 也是一个X11 应用程序 , 它模拟framebuffer .
  1) qvfb 启动 
  2) 别的应用程序加上选项-display QVFb:0  
 ./analogclock -qws -display QVFb:0  
  此时,应用程序所用的QScreen派生类为 QVFbScreen . 这个类会将输出到 qvfb上
   QSCreen  
      ----> QLinuxFbScreen (实际device上)
      ----> QVFBScreen  (qvfb 模拟)  
 
    
6 2 QCopChannel用于多进程间通讯
  (QCopChannel 通讯{BANNED}最佳后是基于linux下的socket进行通信的 )
   这有别于通用的DBUS,
   Qt也集成了DBUS的支持

   
阅读(748) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~