LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5927|回复: 6

学习使用QT除了C++外,最好要了解QT的特性

[复制链接]
发表于 2003-8-18 18:51:44 | 显示全部楼层 |阅读模式
学习使用QT除了C++外,最好要了解QT的特性。

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相关类可以非常好的完成这些工作。
发表于 2003-8-18 21:52:12 | 显示全部楼层
呵呵,这么好的东东,埋没在一大堆贴子中太可惜了。分割出来,也好让大家共享嘛。
 楼主| 发表于 2003-8-18 21:55:42 | 显示全部楼层
艾。吓我一跳。呵呵,突然贴子没了。还以为说了什么不该说的。
发表于 2003-8-18 23:24:25 | 显示全部楼层
不好意思,让兄弟受惊了。
兄弟为论坛提供了这样的好东东,感谢都来不及,怎么可能删除?我这个当版主的要是如此糊涂,恐怕早就被炒鱿鱼了。哈哈。。。
以后此类的贴子多多益善,兄弟有多少水平,放心灌水就是。
发表于 2003-8-19 08:57:01 | 显示全部楼层
最初由 stormful 发表
不过要开发QT最好还是使用KDevelop来开发。

如果只学Qt的话,kdevelop是可以不用的
ide有时候会影响你对一个东西的思考
建议多看看qmake的文档
自己谢谢pro文件
你对makefile的理解会更多一些
不过楼主的文章确实不错
signal,slot,property都还是要好好看的
qsa里面这些东西都是很有用的
发表于 2003-9-15 08:14:52 | 显示全部楼层
要学Qt,如果你有好的C++背景,学起来不难。  是个好东西,写GUI非常方便。
发表于 2003-9-16 09:11:50 | 显示全部楼层
嘿嘿。。。我就是这样的,用QT SDK+EMACS,搞定!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表