在Qt中如何判断鼠标离开某一操作的时候,在时间差内自动执行某一个操作
来源:互联网 发布:淘宝店铺怎样上传图片 编辑:程序博客网 时间:2024/06/01 11:47
在Qt中如何判断鼠标离开某一操作的时候,在时间差内自动执行某一个操作。如在手写识别的过程中如何判断最后一笔输入完成时,(在输入过程中,一段时间内没有输入)在时间差内没有在输入,自动对输入结果识别显示,在时间差内没有选择识别后选结果,自动把识别结果的第一个字自动确定为最终的结果?
查阅经过资料,已经实现基本的需求功能,可以通过使用Qt中的定时器类QTimer来实现其功能,利用QTimer类的start(int msec) ,stop(), 信号函数
t imeout()就可以实现,我的基本思路是在mouseRleaseEvent(QMouseEvent *) mousePressEvent(QMouseEvent *)这两个方法中配合使用start(int msec) ,stop()
槽函数,当鼠标按下时,停止计时,鼠标释放是开始计时;设置的等待时间自动执行另一事件;实现测试代码如下
#ifndef __TIMER_H__
#define __TIMER_H__
#include <QTimer>
#include <QTime>
#include <QWidget>
#include <QDebug>
#include <QMouseEvent>
class Timer:public QWidget
{
Q_OBJECT
public:
Timer(QWidget *parent =0);
virtual ~Timer();
protected:
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
public slots:
void test();
private:
QTimer *m_timer;
QTime m_time;
int i;
int i_press;
};
#endif //timer.h
//timer.cpp
Timer::Timer(QWidget *parent)
:QWidget(parent)
{
i=o;
i_press=0;
//创建定时器
m_timer = new QTimer(this);
//当定时器到设定时间的时候自动执行test()函数
connect(m_timer, SIGNAL(timeout()), this, SLOT(test()));
}
Timer::~Timer()
{
delete m_timer;
if(m_timer != NULL)
{
m_timer =NULL;
}
}
//自动执行的事件
void Timer::test()
{
m_time = QTime::currentTime()
qDebug()<<"currnet time="<<m_time.second();
qDebug()<<"i="<<i++;
qDebug()"@@@@@@@@@@@@@@@@@ test@@@@@@@@@@@";
//执行完事件时候必须停止定时器否则将会在设置时间超时时循环响应
m_timer->stop();
}
void Timer::mousePressEvent(QMouseEvent *event)
{
Q_UNUSED(event);
m_timer->stop();
}
void Timer::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event);
//设置响应时间为3秒
m_timer->start(3000);
}
//main.cpp
#include <QApplication>
#include "timer.h"
int main(int argc,char *argv[])
{
QApplication app(argc, argv);
Timer timer;
timer.resize(400,400);
timer.show();
return app.exec();
}
查阅经过资料,已经实现基本的需求功能,可以通过使用Qt中的定时器类QTimer来实现其功能,利用QTimer类的start(int msec) ,stop(), 信号函数
t imeout()就可以实现,我的基本思路是在mouseRleaseEvent(QMouseEvent *) mousePressEvent(QMouseEvent *)这两个方法中配合使用start(int msec) ,stop()
槽函数,当鼠标按下时,停止计时,鼠标释放是开始计时;设置的等待时间自动执行另一事件;实现测试代码如下
#ifndef __TIMER_H__
#define __TIMER_H__
#include <QTimer>
#include <QTime>
#include <QWidget>
#include <QDebug>
#include <QMouseEvent>
class Timer:public QWidget
{
Q_OBJECT
public:
Timer(QWidget *parent =0);
virtual ~Timer();
protected:
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
public slots:
void test();
private:
QTimer *m_timer;
QTime m_time;
int i;
int i_press;
};
#endif //timer.h
//timer.cpp
Timer::Timer(QWidget *parent)
:QWidget(parent)
{
i=o;
i_press=0;
//创建定时器
m_timer = new QTimer(this);
//当定时器到设定时间的时候自动执行test()函数
connect(m_timer, SIGNAL(timeout()), this, SLOT(test()));
}
Timer::~Timer()
{
delete m_timer;
if(m_timer != NULL)
{
m_timer =NULL;
}
}
//自动执行的事件
void Timer::test()
{
m_time = QTime::currentTime()
qDebug()<<"currnet time="<<m_time.second();
qDebug()<<"i="<<i++;
qDebug()"@@@@@@@@@@@@@@@@@ test@@@@@@@@@@@";
//执行完事件时候必须停止定时器否则将会在设置时间超时时循环响应
m_timer->stop();
}
void Timer::mousePressEvent(QMouseEvent *event)
{
Q_UNUSED(event);
m_timer->stop();
}
void Timer::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event);
//设置响应时间为3秒
m_timer->start(3000);
}
//main.cpp
#include <QApplication>
#include "timer.h"
int main(int argc,char *argv[])
{
QApplication app(argc, argv);
Timer timer;
timer.resize(400,400);
timer.show();
return app.exec();
}
- 在Qt中如何判断鼠标离开某一操作的时候,在时间差内自动执行某一个操作
- QT 判断鼠标在某一控件内
- jdbcTemplate在执行插入操作的时候如何判断是否插入成功?
- c# 如何应对鼠标离开,自动执行查询事件,并显示在指定地方
- 测试鼠标是否在窗口内,以及鼠标的离开
- 在ORACLE中实现后台自动执行的定时操作
- 怀念:如何判断鼠标离开窗口/浮动在窗口上?
- JS 如何判断一个数字在某一个区间内
- 如何在 BroadcastReceiver 中执行耗时操作?
- QT如何在点关闭按钮时执行一些操作
- 判断是否在某一个时间段内的处理
- 在View类中如何捕获鼠标离开消息
- 获取onbeforeunload的返回结果,在检测到取消离开页面后执行操作
- 平面中判断点是否在某一三角形内算法 .
- 平面中判断点是否在某一三角形内算法 .
- 平面中判断点是否在某一三角形内算法 .
- 怎样得到数据库中某一个表的某一个字段在设计时候的数据类型
- C++中如何在main()函数之前执行操作?
- 在linux系统下,简单实现类似windows的_splitpath函数的功能
- undefined reference to `__gxx_personality_v0'
- qt 中鼠标落点区域判断方法
- 深入浅出之正则表达式(一)
- 深入浅出之正则表达式(二)
- 在Qt中如何判断鼠标离开某一操作的时候,在时间差内自动执行某一个操作
- UITableView +下拉刷新(Pull-refresh)
- 【JavaScript】Cookie
- 【JavaScript】for循环得出多个span的值
- 【JavaScript】getOs()获取浏览器
- 【JavaScript】GridView
- 【JavaScript】JavaScript函数(mySelf)
- 【JavaScript】javascript事件列表解说
- 【JavaScript】onload