QT开发的总结

http://blog.csdn.net/kerry_xiaowei/article/details/6367570

http://mobile.51cto.com/symbian-270600.htm

Qt中的音视频方案为:

                  phonon框架

 

QT还真有点垃圾,一个延时也这么麻烦


 

  1. QTime;
  2. t.start();
  3. while(t.elapsed()<1000)
  4.    QCoreApplication::processEvents();
  5. 不停地处理事件,以使得程序保持响应。

QWaitCondition waitCond;waitCond.wait (400);//or any other time in[ms]


第二步, 解决程序CPU占用率过高的问题 -- 让程序适当睡眠。

 
 
  1. QTime t; 
  2. t.start(); 
  3. while(t.elapsed() < 250
  4. QCoreApplication::processEvents(); 
  5. usleep(10000);//sleep和usleep都已经obsolete,建议使用nanosleep代替 
  6. }

 

char* bmp = new char[Len+1]; memcpy(bmp,(char*)ba.data(),Len);
 bmp[Len+1] = '\0';
 WCHAR   wsz[1024] = {0};
 swprintf(wsz, Len+1,L"%S", bmp);
 LPCWSTR p = wsz;

 

 

 

 QT 中启动一个新的程序:

QProcess::startDetached(QString::fromWCharArray(m_strSetupFile.c_str()));

 

QT中让界面进行相应的处理为:

qApp->processEvent();

 


QT中的内存管理,内存泄漏的处理:
  在QT中,如果一个对象的定义指定了parent的话, 该对象的析构是有其parent析构时来完成的。
比如

QToolBar parent;
QLabel *label = new QLabel("this is a label", &parent);
这里的delete label是在parent析构函数中完成的。


  如果是多个对象的释放,则要考虑顺序:

QIcon *ss =  new  QIcon(tempimage); //2
     QPixmap* tempimage1 =  new  QPixmap( ss->pixmap(tempimage.size(),QIcon::Disabled) ); //3
// 内存无法释放地方
tempimage1.detach();
    deletetempimage1  ;
    delete  ss ;
有的类,会提供其它的函数,在delete前调用,如下面的detach:
tempimage1.detach();
delete tempimage1;

http://blog.csdn.net/zhangshan415/article/details/7986027 检查内存泄漏

如果是用QPixmap 有性能上的问题,可以考虑QPixmapCache,并利用来解决图片显示时内存占用过大的问题,参见以下文章:
http://blog.csdn.net/a324539017/article/details/6567186


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值