01.class KeyButton : public QPushButton 
02.{ 
03.    Q_OBJECT 
04.public: 
05.    explicit KeyButton(QWidget *parent = 0) : QPushButton(parent), 
06.        pauseMsecs(400), intervalMsecs(30) 
07.    { 
08.        tm = new QTimer(this); 
09.        connect(tm, SIGNAL(timeout()), this, SLOT(on_pressed_last())); 
10.        connect(this, SIGNAL(pressed()), this, SLOT(on_pressed())); 
11.        connect(this, SIGNAL(released()), this, SLOT(on_released())); 
12.        connect(this, SIGNAL(clicked()), this, SLOT(on_clicked())); 
13.    } 
14. 
15.private: 
16.    QTimer *tm; 
17.    long pauseMsecs; 
18.    long intervalMsecs; 
19. 
20.signals: 
21.    void keyPressed(const QString &msg); 
22.    void keyReleased(const QString &msg); 
23.    void keyClicked(const QString &msg); 
24. 
25.public slots: 
26.    void on_pressed() { emit this->keyPressed(this->text()); 
27.                        tm->start(pauseMsecs); } 
28.    void on_pressed_last() { emit this->keyPressed(this->text()); 
29.                             tm->setInterval(intervalMsecs); } 
30.    void on_released() { tm->stop(); emit this->keyReleased(this->text()); } 
31.    void on_clicked() { emit this->keyClicked(this->text()); } 
32.};

QT 按钮类继承处理带定时器的更多相关文章

  1. Qt类继承图

    对于学习Qt的,有一个Qt所有类的继承图表,是很有需要的.以下提供了Qt5.1的所有类的继承关系图.看的时候,可以放大和缩小.如需文档下载,可以加入最后的QQ学习群.

  2. 详解 QT 主要类 QWidget

    QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...

  3. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  4. 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    介绍背水一战 Windows 10 之 控件(按钮类) ButtonBase Button HyperlinkButton RepeatButton ToggleButton AppBarButton ...

  5. C++——类继承

    类库:类库由类声明和实现构成.类组合了数据表示和类方法,因此提供了比函数库更加完整的程序包. 类继承:从已有的类派生出新的类,派生类继承了原有类(称为基类)的特征,包括方法. 通过类继承可以完成的工作 ...

  6. cocos2dx中常见的类及类继承关系

    场景:CCScene,继承自CCNode,几乎完全等于CCNode类 CCNode继承自CCObject,CCObject是真正意义上的父类,CCObject又继承自CCCopying类,CCCopy ...

  7. C++中的类继承(2)派生类的默认成员函数

    在继承关系里面, 在派生类中如果没有显示定义这六个成员 函数, 编译系统则会默认合成这六个默认的成员函数. 构造函数. 调用关系先看一段代码: class Base { public : Base() ...

  8. Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用

    以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...

  9. C#类继承中构造函数的执行序列

    不知道大家在使用继承的过程中有木有遇到过调用构造函数时没有按照我们预期的那样执行呢?一般情况下,出现这样的问题往往是因为类继承结构中的某个基类没有被正确实例化,或者没有正确给基类构造函数提供信息,如果 ...

随机推荐

  1. landsat8简介

    简介 2013年2月11号,NASA 成功发射了 Landsat 8 卫星,为走过了四十年辉煌岁月的 Landsat 计划重新注入新鲜血液.LandSat- 8上携带有两个主要载荷:OLI和TIRS. ...

  2. 前端工程筹建NodeJs+gulp+bower

    1.安装nodejs nodejs 官网下载安装文件 安装完成之后,在命令窗口执行,(显示nodejs版本) 和(显示npm版本)可以使用这两个命令查看是否安装成功: node -v npm -v 2 ...

  3. leetcode 24

    链表操作的,要注意标记头结点和边界问题. 代码如下: ListNode *swapPairs(ListNode *head) { if(head==NULL||head->next==NULL) ...

  4. VS2010调试生成的文件

    调试时IntelliTrace打开了,关闭IntelliTrace就可以了, Win7的话在C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebug ...

  5. 解决VirtualBox 上的XP 蓝屏,自动重复启动

    启动时的蓝屏显示错误信息是: STOP 0x000000CE (...) DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS intelppm. ...

  6. .NET Web开发总结(三)

    第五章 ASP.NET 页面语法 本章详细讲解.NET页面的语法结构     一般情况下  一个ASP.NET页面要包括页面编译指令 HTML页面框架及Web窗体     服务器端控件  服务器端代码 ...

  7. sqlite mvc分页

      <tr class="tr1">                 <td>                     共<asp:Literal r ...

  8. C#实现图书馆程序导入ISO-2709格式(MARC)功能

    1.导入 /// <summary> /// 导入ISO2709 /// </summary> /// <param name="sender"> ...

  9. Vue.js学习 Item8 -- 方法与事件处理器

    方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet&quo ...

  10. Thinkphp 下面执行crond

    thinkphp开启cli支持  1.tp正好支持cli命令模式,手册的路径为13.7.4 如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码. 2.在入口文 ...