您的位置:首页 > 其它

双击时不运行单击事件——加延时判断

2015-11-25 07:50 525 查看
思路很简单,就是加一个延时,判断在特定时间内是否有第二个鼠标事件

[cpp] view plaincopyprint?

//tqt.h

#ifndef TQT_H_

#define TQT_H_

#include <QtGui>

#include <QtCore>

class ClickedLabel : public QLabel

{

Q_OBJECT

private:

int press;

//QTimer *timer;

protected:

void mousePressEvent(QMouseEvent *event);

public:

ClickedLabel(QLabel *parent = 0);

~ClickedLabel();

private slots:

void SingleClicked();

};

#endif

#include "tqt.h"

ClickedLabel::ClickedLabel(QLabel *parent /* = 0 */)

: QLabel(parent)

{

press = 0;

setText("Please Click ME~~~");

resize(200, 200);

}

ClickedLabel::~ClickedLabel()

{

}

void ClickedLabel::mousePressEvent(QMouseEvent *event)

{

press++;

if(1 == press)

QTimer::singleShot(300, this, SLOT(SingleClicked()));

}

void ClickedLabel::SingleClicked()

{

if(1 == press)

QMessageBox::information(this, tr("OK"), tr("Signal Clicked"));

else

QMessageBox::information(this, tr("OK"), tr("Double Clicked"));

press = 0;

}

//main.cpp

#include "tqt.h"

int main(int argc, char **argv)

{

QApplication app(argc, argv);

ClickedLabel *label = new ClickedLabel;

label->show();

return app.exec();

}

/article/2021933.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: