Qt开发心得范文.doc_第1页
Qt开发心得范文.doc_第2页
Qt开发心得范文.doc_第3页
Qt开发心得范文.doc_第4页
Qt开发心得范文.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Qt开发心得范文 Qt开发心得 1、Qt界面编程及美化1. 1、Qt界面设计应尽量使用GUI开发,少用代码编写。 理由1)可以快速地预览设计的效果。 手动代码编写不能立刻看到到编程后的界面效果,只有在经过编译、运行后才行,一般很耗时,而且有时我们仅仅只需要看到编程后的界面效果;而使用GUI可以很快地就可以预览了,只需简单的几个步骤单击Qt Creator的:或者,就可以看到与实际运行时一模一样的界面效果,而且还可以选择不同的界面风格。 这在Qt界面设计的初期很有帮助。 2)修改方便。 使用GUI可以很快地添加、删除部件的操作,还可以使用复制、粘贴的功能,在几个有着类似界面间进行快速设计很有帮助。 而手动编写还要考虑到一些部件的声明,移植、修改不变。 3)易于团队合作。 使用GUI开发的界面可以让人读较少的代码,知道更多的功能。 附Qt诺基亚官方中文教程L3_Qt的布局与部件1. 2、Qt界面设计时,使用等部件可以吧部件巩固,在界面放大、缩小时界面里的部件也跟着一起放大、缩小,可以美化界面效果。 1. 3、QWidget与QGraphicsView在编写梯度仪、2400的温度设置界面时。 我使用分别有使用过QWidget与QGraphicsView来设计。 结果表明,QWidget可以完全替代QGraphicsView,而且还更美观、更能与其他界面兼容、运行的相应速度更快。 以下是QWidget写的温度设置界面 2、Qt程序开发2.1类的编写2.1.1Qt是属于C+,开发时应以类的开发为主。 为了便于团队合作,我建议把特定功能的类的实现单独放在一个文件夹里,一个文件夹一个类,文件夹以类的名字命名,查找方便,修改时也比较方便。 2.1.2类的成员函数应尽量少为了方便团队间的学习和交流,类的成员函数越少,越能方便他人的阅读。 成员函数太多,代码间跳来跳去很容易忘记代码的功能。 2.1.3关于注释2.2Qt官方教程 3、一些相关的小技巧。 3. 1、C、C+中的函数指针数组的使用。 函数指针在串口线程开发中很有用。 以下是例子()函数指针及函数指针数组的妙用笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为char*buffer和int length,buffer是数据的首地址,length表示这批数据的长度。 数据的特点是长度不定,类型不定,由第一个字节(buffer0)标识该数据的类型,共有256 (28)种可能性。 我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都要作类似的处理。 若按通常做法,会写出如下代码void MyFuntion(char*buffer,int length)_int8nStreamType=buffer0;switch(nStreamType)case0:function1();break;case1:.case255:function255();break;如果按照这种方法写下去,那么在我的每一个函数里面,都必须作如此多的判断,写出的代码肯定很长,并且每一次处理,都要作许多次判断之后才找到正确的处理函数,代码的执行效率也不高。 针对上述问题,我想到了用函数指针数组的方法解决这个问题。 函数指针的概念,在潭浩强先生的C语言程序设计这本经典的教程中提及过,在大多数情况下我们使用不到,也忽略了它的存在。 函数名实际上也是一种指针,指向函数的入口地址,但它又不同于普通的如int*、double*指针,看下面的例子来理解函数指针的概念int funtion(int x,int y);void main(void)int(*fun)(int x,int y);int a=10,b=20;function(a,b);fun=function;(*fun)(a,b);语句1定义了一个函数function,其输入为两个整型数,返回也为一个整型数(输入参数和返回值可为其它任何数据类型);语句3定义了一个函数指针,与int*或double*定义指针不同的是,函数指针的定义必须同时指出输入参数,表明这是一个函数指针,并且*fun也必须用一对括号括起来;语句6将函数指针赋值为funtion,前提条件是*fun和function的输入参数和返回值必须保持一致。 语句5直接调用函数function(),语句7是调用函数指针,二者等效。 当然从上述例子看不出函数指针的优点,目的主要是想引出函数指针数组的概念。 我们从上面例子可以得知,既然函数名可以通过函数指针加以保存,那们也一定能定义一个数组保存若干个函数名,这就是函数指针数组。 正确使用函数指针数组的前提条件是,这若干个需要通过函数指针数组保存的函数必须有相同的输入、输出值。 这样,我工作中所面临的问题可以解决如下首先定义256个处理函数(及其实现)。 void funtion0(void);.void funtion255(void);其次定义函数指针数组,并给数组赋值。 void(*fun256)(void);fun0=function0;.fun255=function();最后,MyFunction()函数可以修改如下void MyFuntion(char*buffer,int length)_int8nStreamType=buffer0;(*funnStreamType)();只要2行代码,就完成了256条case语句要做的事,减少了编写代码时工作量,将nStreamType作为数组下标,直接调用函数指针,从代码执行效率上来说,也比case语句高。 假如多个函数中均要作如此处理,函数指针数组更能体现出它的优势。 3. 2、Qt类中的添加自定义属性。 以QPushButton为例。 在界面中选中一个QPushButton,如,在属性栏中单击添加自定义属性的优点配合eventFilter可以实现各种功能,如QPushButton与eventFilter配合可以实现键盘,无需重新单独实现QPushButton类。 ,在弹出的列表中选中相应的设置,即可添加属性。 3. 3、在使用除输入框如QLineEdit等以外的控件如QPushButton时,应将他们的focusPolicy属性设为NoFocus,因为这些控件,没必要使用这个属性,而且在有软键盘(自己做的)的时候,如果给这些没有输入属性的控件比如QPushButton时,程序会因发过来的信息而挂掉。 4、多线程使用4. 1、在多线程中,如果不注意,会让主从线程同时向串口发送信息,结果会导致接收超时或错误。 4. 2、在多线程使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论