QSlider中的快捷键问题

    在实际开发过程中,有时我们往往不需要QSlider提供的快捷键功能。那么,究竟如何才能去掉QSlider中的快捷键呢?

    笔者当时考虑的方法有两种,现在做下记录,以备以后查询.

1.在使用QSlider的父窗体类中,监控QSlider的事件,发现是键盘事件时,直接返回。但该种方式仅仅是通知了父窗体QSlider上有键盘事件发生,并未阻止QSlider对快捷键的响应。暂时还没有完全弄清QT内部的消息流以及对消息流的处理过程。

2.后来考虑到从QSlider派生一个新类,重写其keyPressEvent()与KeyReleaseEvent().解决该快捷键问题.代码很简单:

.h文件中

#ifndef ZQSLIDER_H

#define ZQSLIDER_H

#include <QSlider>

class ZQSlider : public QSlider

{

    Q_OBJECT

public:

    explicit ZQSlider(Qt::Orientation,QWidget *parent = 0);

protected:

    virtual void keyPressEvent(QKeyEvent *);

    virtual void keyReleaseEvent(QKeyEvent *);

    

signals:

    

public slots:

    

};

#endif // ZQSLIDER_H

.cpp文件中

#include "zqslider.h"

ZQSlider::ZQSlider(Qt::Orientation orientation,QWidget *parent) :

    QSlider(orientation,parent)

{

}

//仅仅为了屏蔽掉QSlider的快捷键

void ZQSlider::keyPressEvent(QKeyEvent *event)

{

}

void ZQSlider::keyReleaseEvent(QKeyEvent *event)

{

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值