Qt 组件优化

 

 

         学Qt也有一段时间了。最近在做小电脑学习系统,也都分了很多模块,有些模块的界面,功能差不多,所以做了一些自定义控件。

一些模块的轻量级框架,很多模块,只要按这个框架改动一些,大概就可以做成一个模块啦。很方便。

 

        但这些框架,当项目时间紧急,自定义控件没真正的花时间去测试过,对一些BUG,性能方面,代码的可读性,等等,而且都是在PC机上运行,所以,在速度,代码的优化上,存在一定的隐患,当后期维护的时候,出现了大量的BUG,而且在都在这个框架上,所以大量的模块要修改,和优化,花费了大量的时间和人力,这是在开发项目当中,不该出现这样的事件,至少要把框架优化,和测试。

 

     今天在小电脑上,运行一个模块,加载窗体的时候,速度很慢,在窗体打开之前到窗体完全显示数据,窗还在一闪一闪,看起来非常恶心,所以在PC机上,进行了一些优化,情况大概是这样,打开窗体,程序根据读取XML文件显示窗体里的一个文件列表,当时这个列表大概有250个文件。最终打开窗体。

   

     程序分析:读取XML数据,根据XML节点,把每一个XML节点转换为一个自定义对象存起来,再根据转换的XML自定义对象,把XML对象,一个一个的用Label控件显示出来。(当时这个Label控件是自定义的),然后最终把传统显示出来。就这样一个简单的数据加载,怎么会启动的那么慢呢? 开始一直认为,是XML转换为自定义对象这个环节,拖慢了速度,经过QTime的测试,发现有200毫秒左右的加载时间(这是在PC上测试的时间),花费在XML转换为自定义对象的这个环节上,但这样的速度还是可以接受的。最终发现,程序在把XML自定义对象转换为Label时,花费的时候有4秒多,当时我吓到了。怎么可能加载那么长的时间呢?问题出现在自定义的Label上。在自定义Label里。实现了很多功能,而且在创建Label的时候,初始化了大量的数据,还把Label设为hide,而在程序中,再用show方法把Label显示出来。在Label身上耗掉了太多了时间,而在程序中,自定义Label只是用到一个点击功能!真的。。。。最后程序500毫秒就能打开!

 

     对一些自定义控件,要小心使用,当不需要该功能,或在初始化自定义控件时,最后不要加载太多的数据!好了,在学习Qt的路上一些小小的教训吧,就这样把,,继续修让人无奈的BUG!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
选择Qt组件还是Qt源代码,应根据项目的具体需求进行评估和决策。 Qt组件是指Qt平台提供的一系列高度封装、易用的组件,可以有效地提升开发效率和代码质量。这些组件已经经过充分的测试和验证,具有稳定性和可靠性。选择Qt组件可以快速地构建应用程序,减少重复性的工作,提高开发效率。特别是对于一些常见的功能需求,例如图形界面、网络通信、数据库操作等,Qt组件提供了丰富的选项,可以满足各种开发需求。 Qt源代码则是指Qt平台的开源代码,具有高度灵活性和可定制性。选择Qt源代码可以在有特定需求的情况下,深入了解和定制Qt框架的内部实现,以满足项目的特殊要求。特别是在需要进行底层功能扩展、优化或者修复bug时,Qt源代码可以提供更直接的操作方式。同时,通过对源代码的研究和调试,也可以加深对Qt框架的理解和掌握。 综上所述,选择Qt组件还是Qt源代码应根据项目的需求来决策。如果项目对开发效率和稳定性要求较高,且需要的功能在Qt组件已经有完备的实现,可以优先选择Qt组件。如果项目对灵活性和定制性要求较高,或者需要做一些底层的功能扩展或者调优,可以选择Qt源代码进行开发。当然,根据具体情况,也可以在使用Qt组件的同时,辅以对Qt源代码的研究和定制来满足项目的特殊需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值