QT__事件之锁住键盘__操作

 锁定按键:
#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>
#include <QPushButton>
//-----------------------------------------------------
class TestOther :public QWidget
{
public:
    TestOther(QWidget *parent = 0);
};
//-----------------------------------------------------
class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void LockKey();
    void showOther();
protected:    
    bool eventFilter(QObject *target, QEvent *event);
    bool bLockKey;
    QPushButton *ptnLock;
};

#endif // WIDGET_H

//--------------------------------------------------------
#include "widget.h"
#include <QMessageBox>
#include <QGridLayout>
#include <QLineEdit>
#include <QKeyEvent>
#include <QTextCodec>
#include <QApplication>
#include <QPushButton>
//原理就是利用事件过滤器来做的。第一步安装事件过滤器,第二步重载eventFilter函数。
//-------------------------------------------------------
TestOther::TestOther(QWidget *parent)
    : QWidget(parent)
{
   QGridLayout *gridWin=new QGridLayout;
   QLineEdit *line1=new QLineEdit;
   QLineEdit *line2=new QLineEdit;

    gridWin->addWidget(line1,0,0);
    gridWin->addWidget(line2,1,0);
    setLayout(gridWin);
}

//-------------------------------------------------------
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    qApp->installEventFilter(this);  //安装事件过滤器。qApp为应用程序的全局变量名

   bLockKey=false;

    QGridLayout *gridWin=new QGridLayout;
   QLineEdit *line1=new QLineEdit;
   QLineEdit *line2=new QLineEdit;

   ptnLock=new QPushButton("Lock");
   connect(ptnLock,SIGNAL(clicked()),this,SLOT(LockKey()));

 QPushButton  *ptnTest=new QPushButton("show other");
   connect(ptnTest,SIGNAL(clicked()),this,SLOT(showOther()));


    gridWin->addWidget(line1,0,0);
    gridWin->addWidget(line2,1,0);
    gridWin->addWidget(ptnLock,2,0);
    gridWin->addWidget(ptnTest,3,0);
    setLayout(gridWin);

}

Widget::~Widget()
{
    
}
bool Widget::eventFilter(QObject *target, QEvent *event)
{

    if (event->type() == QEvent::KeyPress)
    {
        if(bLockKey!=true)
         {
            QWidget::eventFilter(target, event);//抛个父类
         }
    }
    else
    {
       QWidget::eventFilter(target, event);//抛个父类
    }
}
void Widget::LockKey()
{

    if(ptnLock->text()=="Lock")
    {
        ptnLock->setText("Unlock");
        bLockKey=true;
    }
    else
    {
        ptnLock->setText("Lock");
        bLockKey=false;
    }
}
void Widget::showOther()
{
   TestOther  *test=new TestOther;
   test->show();

}




                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QT键盘是一款可以在QT开发环境下使用的虚拟键盘组件。它可以用于在移动设备、嵌入式系统或者桌面应用中提供虚拟键盘输入功能。用户可以通过触摸屏或者鼠标点击等方式,使用QT键盘来输入文字、数字或者符号。 谈到Google,它是一家全球知名的互联网科技公司,也是目前最受欢迎的搜索引擎之一。Google公司提供了许多优秀的产品和服务,例如谷歌搜索、谷歌地图、谷歌翻译等,这些产品和服务都以其高效、准确和强大的搜索能力著称。 将QT键盘与Google结合起来使用,可以为用户在QT应用中提供便捷的搜索体验。例如,当用户在一个需要搜索功能的QT应用中需要输入关键词时,可以通过打开QT键盘来输入关键词,然后通过与Google的集成,将输入的关键词直接发送给Google搜索引擎进行搜索。这样,用户无需离开QT应用,就可以轻松地完成搜索操作,并快速获取结果。 QT键盘与Google的结合,不仅可以提高用户的使用便利性和效率,还能够为QT应用增加更多的功能。通过与Google的API接口进行对接,可以实现更加智能化的搜索功能,并且能够根据用户的搜索历史和行为,为其提供更加个性化和精准的搜索结果。这样,不仅能够提升用户体验,还能够为开发者带来更多的商业机会。 综上所述,将QT键盘与Google结合使用,可以为用户提供便捷高效的搜索体验,为开发者增加更多的应用功能和商业机会。这种结合为用户带来了更加智能化和个性化的搜索体验,也为开发者在竞争激烈的市场中提供了更多的发展机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值