逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::
#include "MainWindow.h"
#include 
<iostream>
#include 
<QWidget>
#include 
<QLineEdit>
#include 
<QObject>
#include 
<QEvent>
#include 
<QKeyEvent>
#include 
<QString>
#include 
<QChar>
#include 
<QSizePolicy>

MainWindow::MainWindow(QWidget 
*parent) :
    QMainWindow(parent) 
{
    lineEdit 
= new QLineEdit(this);
    lineEdit
->installEventFilter(this);
    
    QSizePolicy policy 
= lineEdit->sizePolicy();
    policy.setHorizontalPolicy(QSizePolicy::Expanding);
    lineEdit
->setSizePolicy(policy);
    
    
this->setCentralWidget(lineEdit);
}


MainWindow::
~MainWindow() {
}


bool MainWindow::eventFilter(QObject 
*obj, QEvent *event) {
    
if (obj == lineEdit) {
        
if (event->type() == QEvent::KeyPress) {
            QKeyEvent 
*keyEvent = static_cast<QKeyEvent*>(event);
            
if (keyEvent->key() >= QChar('A').unicode() && keyEvent->key() <= QChar('Z').unicode()) {
                lineEdit
->setText(lineEdit->text() + QChar(keyEvent->key()));
                
                std::cout 
<< keyEvent->key() << std::endl;
                
                
return true;
            }

        }
 else {
            
return false// Do nothing.
        }

    }

    
    
return QMainWindow::eventFilter(obj, event);
}


使用继承自QObject的eventFilter来过滤一些事件.
posted on 2008-03-21 23:10 逛奔的蜗牛 阅读(600) 评论(0)  编辑 收藏 引用 所属分类: Qt

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理