概述
花了两天时间找我的QObject::startTimer()定时到了之后却不进入void timerEvent(QTimerEvent *event);的问题,很是头大,最终找到了原因,还是自己的Qt学的不到家。
在我的这个文件中还有一个bool event(QEvent* e),我在这个里面的最后返回了return true;所以定时的事件就丢了,上代码看看:
#include "qtimereventtest.h"
#include <iostream>
using namespace std;
QTimerEventTest::QTimerEventTest(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
int tid = startTimer(30);
}
QTimerEventTest::~QTimerEventTest()
{
}
void QTimerEventTest::timerEvent(QTimerEvent *event)
{
cout << "timerID:" << event->timerId();
cout << "Retest a:" << ReTest::instance()->a << endl;
int a = 1;
}
bool QTimerEventTest::event(QEvent* e)
{
if (e->type() == KEvent::Idle) //KEvent::Idle这个是公司自己定义的,可以自己换别的实验
{
...(中间代码不重要)
}
return QObject::event(e); //原来返回的是return true;所以QTimerEvent丢了不处理
}
我的QTimerEvent:
#ifndef QTIMEREVENTTEST_H
#define QTIMEREVENTTEST_H
#include <QtGui/QMainWindow>
#include <QTimer>
#include "retest.h"
#include "ui_qtimereventtest.h"
class QTimerEventTest : public QMainWindow
{
Q_OBJECT
public:
QTimerEventTest(QWidget *parent = 0, Qt::WFlags flags = 0);
~QTimerEventTest();
bool event(QEvent* e);
protected:
void timerEvent(QTimerEvent *event);
private:
Ui::QTimerEventTestClass ui;
};
#endif // QTIMEREVENTTEST_H
最后
以上就是英俊宝马为你收集整理的timerEvent不响应问题的全部内容,希望文章能够帮你解决timerEvent不响应问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复