QT编程遇到问题记录--第一篇

一、概叙:

本篇文章主要是针对我在使用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,然后重新打开工程配置即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值