Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.6.2
-
None
-
OS: Windows 7, and I am using Nokia Qt SDK 1.0
-
3bb3af84bef3c0472ca8ed0d5c6bb3c82320956d
Description
I have a custom widget which inherits from QLinedEdit, in this widget I override event(QEvent * event), keyPressEvent(QKeyEvent *event) and keyReleaseEvent(QKeyEvent *event ). When I debugged the code on N97 device, when I press any key on the keypad the events are delivered as follows:
1. event(QEvent * events) gets called with event type set to KeyRelease.
2. keyReleaseEvent(QKeyEvent *event ) gets called.
and keyPressEvent was never called !!
if I press Enter, BackSpace, action keys, left, right, down, up, the events are delivered as follows:
1. event(QEvent * events) gets called with event type set to KeyPress.
2. keyPressEvent(QKeyEvent *event ) gets called.
3. event(QEvent * events) gets called with event type set to KeyRelease.
4. keyReleaseEvent(QKeyEvent *event ) gets called.
which is correct.
#include <QKeyEvent>
#include <QMessageBox>
#include <QLineEdit>
#include <QTextEdit>
#include <QDebug>
How to reproduce:
class MyWidget : public QLineEdit
;
MyWidget::MyWidget(QWidget *parent)
:QLineEdit(parent)
{
setText("Hola");
}
void MyWidget::keyPressEvent(QKeyEvent *event)
{ QLineEdit::keyPressEvent(event); }void MyWidget::keyReleaseEvent(QKeyEvent *event )
{ QLineEdit::keyReleaseEvent(event); }bool MyWidget::event(QEvent *event ) {
switch( event->type() )
}
The same problem appears if I inherits from the QTextEdit