http://blog.csdn.net/kerry_xiaowei/article/details/6367570
http://mobile.51cto.com/symbian-270600.htm
Qt中的音视频方案为:
phonon框架
QT还真有点垃圾,一个延时也这么麻烦
- QTime;
- t.start();
- while(t.elapsed()<1000)
-
QCoreApplication::processEvents(); - 不停地处理事件,以使得程序保持响应。
QWaitCondition waitCond;waitCond.wait (400);//or any other time in[ms]
第二步, 解决程序CPU占用率过高的问题 -- 让程序适当睡眠。
- QTime t;
- t.start();
- while(t.elapsed() < 250)
- {
- QCoreApplication::processEvents();
- usleep(10000);//sleep和usleep都已经obsolete,建议使用nanosleep代替
- }
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 tempimage1;
http://blog.csdn.net/zhangshan415/article/details/7986027 检查内存泄漏
如果是用QPixmap 有性能上的问题,可以考虑QPixmapCache,并利用来解决图片显示时内存占用过大的问题,参见以下文章:
http://blog.csdn.net/a324539017/article/details/6567186