我是靠谱客的博主 英俊宝马,最近开发中收集的这篇文章主要介绍timerEvent不响应问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

花了两天时间找我的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不响应问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部