1、signal和slot是必须理解的。否则看QT的帮助文档都成问题。
2、QT的property特性倒不是必需的。不过看看,很有意思。
3、QT由于是跨平台SDK。因此,它对event的处理并不像MFC或XAPI那样明显。但最好能对event filter有一个清晰的概念。这种filter机制可以把定制代码hook到具体的widget中,有时在简化编程上能起到巨大的作用。
4、QObject中的每个函数都是必须仔细研究的。至少,要对那个带parent的构造函数的含有理解清楚。由于QT在GUI的建立上经常要使用多层布局,最好不要手动去delete QObject的派生类。使用带parent的构造函数,QObject会自动释放所有child对象。
5、在QT中有非常强烈的布局概念。仔细研究研究,很快就会创造出非常漂亮的界面。
6、QT在绘制窗体的时候提倡程序员使用他的风格机制,而不是向Windows那样随心所欲的绘制。QT把标准窗体拆分成各个组件,然后按部分进行绘制。QT的风格机制还提供了很多窗体尺寸的信息。当然,你可以写一个自己的风格,并安装在QT中。
7、QTimer是个非常有用的类。由于signal和slot机制基本上就是callback机制,在大量是有时,可能导致递归。QTimer除了能产生定时外,它的令一个重要的任务就是可以抛出一个在空闲时执行的signal,具体函数名我记不清楚了,看看QTimer稳当。一般情况下,跑出 signal的时间参数是0。
理解了这些内容,应该能开发出不错的QT应用。应该还有其他一些非常有个性的特点,但我一时也记不清了。
不过要开发QT最好还是使用KDevelop来开发。因为QT在实现signal/slot和property的过程中,使用了一个预编译机制。这个预编译器的名字叫moc。KDevelop会自动把头文件用moc进行处理,来产生另外的一个cpp原文件,它实现了QObject的一些虚函数和声明了一些静态变量。在初学QT编程的时候,最好不要在cpp源文件中声明具有signal/slot的QObject子类。因为,KDevelop并不负责检查 cpp文件,在这种情况下要么自己手动执行moc,要么修改Makefile.am。总之,会造成混淆。
KDE SDK是在QT上发展的一个桌面SDK。在Widget层面上他的扩展并不大。主要在于action和一些effect上的扩展。比如对于toolbar 上的button,KDE的效果明显好于QT。不过,如果只是用QT开发,可以把这些代码copy过来。写KDe程序必须对目录组织逻辑非常了解,否则在发布应用的时候会非常困难。
KDE和QT在i18n上基本上是一致的。显示中文最好使用po文件来定义。
QT是一种非常容易上手的SDK,它提供了非常多的辅助类。在图形文件的支持上尤其突出。在QT下使用gif格式非常容易。
学习QT最好从QT的基本特性上着手,然后逐步发展的QT的整个框架风格。KDe的cvs上的qt-copy里有QT的Linux下的大量的源代码。可以帮助你理解QT的功能。其实这些代码的价值是非常巨大的。不禁在QT上,在Linux下的很多开发上,参考这些代码的价值都是无法估量的。
还有,除了在界面上现实中文,有时可能要处理文件级的中文。QT的decoder相关类可以非常好的完成这些工作。
来源:http://hi.baidu.com/%B7%C9%CF%E8_%C6%D1%B9%AB%D3%A2/blog/item/fa787d1707162e10972b433e.html