一、概叙:
本篇文章主要是针对我在使用QT进行上位机设计过程中遇到的问题记录,提升自身的理解,方便自己查询,利于大家避坑,持续更新。
二、问题
1、开启了线程之后CPU占用率过高问题
由于开启了线程,即便是空跑,程序也一直是在运行的,因此需要休眠或者间隔一定的时间run一次,此前一直在网上使用了一个sleep实现,这个确实能延时,但是cpu占有率并没有降低,可能是这个sleep仅仅只是延时,代码如下:
void OTAThread::sleep(unsigned int msec)
{
QTime dieTime = QTime::currentTime().addMSecs(msec);
while (QTime::currentTime() < dieTime)
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
这个有时候还是有用的,尤其是在非线程的类中,我这边因为是继承了QT THREAD,所以可以直接调用 msleep(5),发现CPU占有率一下子恢复正常,一些功能也变得流畅了。
2、关于类中的变量和方法的继承及可重入问题
这个是实践出来的,理论暂时未学习。在new了同一个类几个的对象之后,
每个对象对于类中的public或者private变量会单独有一份拷贝地址,不会重复,内部的函数调用该变量都是调用不同的拷贝,不会出现重复。
类中的方法是共有的,不会因为新建对象而拷贝一份,如果存在多个对象同时访问类中的方法,则是要考虑可重入与不可重入的问题了,千万不能使用静态变量。
3、如何修改QT工程的名字
直接关闭工程,打开文件夹,修改后缀为pro的名字,删除.user,然后重新打开工程配置即可

1112

被折叠的 条评论
为什么被折叠?



