在系統啓動後,此時啓動的進度條快達到100%,通過串口操作,將根目錄下的tmp文件夾(/tmp)裏面的所有文件和文件夾刪除,注意不能將tmp文件夾刪了;也可在向啓動卡複製文件時,修改卡目錄的權限(sudo chmod -R 777 /media/rootf)。
2、Qt下自行實現的Sleep()函數換一下,會使CPU使用率高達%90以上(http://blog.sina.com.cn/s/blog_74a459380102uwcb.html):
原來的爲:
void sleepmsec(unsigned int msec) //以下這個代碼主要是實現以毫秒爲單位的延時
{
if(msec<=0)
return;
QTime dieTime = QTime::currentTime().addMSecs(msec);
while( QTime::currentTime() < dieTime ) //該處的循環會比較多的佔用CPU
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);//該處用空閒時間刷新循環事件,但效果沒有下面的好
}
現更改爲:
class SleeperThread:public QThread
{
public:
static void msleep(unsigned long msecs)
{
QThread::msleep(msecs);
}
};
void sleepmsec(unsigned int msec) //以下這個代碼主要是實現以毫秒爲單位的延時
{
if(msec<=0)
return;
SleeperThread::msleep(msec); //使用線程的延時,很好的降低CPU的使用率
}
3、
bool MainWindow::eventFilter(QObject *obj, QEvent *e)
{
if (obj == button) //響應button的MouseButtonPress和MouseButtonRelease事件
{
if (e->type() == QEvent::MouseButtonPress)
{
QMouseEvent *event = static_cast<QMouseEvent*> (e);
button->setText(QString("Press: %1, %2").arg(QString::number(event->x()), QString::number(event->y())));
return true;
}
else if (e->type() == QEvent::MouseButtonRelease)
{
QMouseEvent *event = static_cast<QMouseEvent*> (e);
button->setText(QString("Release: %1, %2").arg(QString::number(event->x()), QString::number(event->y())));
return true;
}
else
{
return false;
}
}
return QMainWindow::eventFilter(obj, e);
}
//處理自定義事件:
bool CDlgMain::event(QEvent *event)
{
if (event->type() == QEvent::MouseButtonRelease)
{
QMouseEvent *e = static_cast<QMouseEvent*> (event);
QPoint point;
point.setX(e->x());
point.setY(e->y());
QRect qlRect = pPBBattery->geometry();
if(e->button() == Qt::LeftButton && qlRect.contains(point))
{
ShowLabelCurDataInfo();
}
//qDebug() << tr("CDlgMain::event----event->type() == QEvent::MouseButtonRelease---------");
}
}