I have no idea if this will really work, but you can give it away:
class KeyEventPropagetionPreventer: public QObject
{
public:
KeyEventPropagetionPreventer( QWidget * widget )
: QObject( widget ), widget( widget ), instercept_events( true )
{
widget->installEventFilter( this )
}
bool eventFilter(QObject *obj, QEvent *event)
{
if ( intercept_events && event->type() == QEvent::KeyPress)
{
intercept_events = false;
QKeyEvent new_event( *event );
QApplication::sendEvent(this->widget, &new_event);
instercept_events = true;
return true;
}
else
{
return QObject::eventFilter(obj, event);
}
}
private:
QWidget * widget;
bool instercept_events;
}
Then you add this line where you create the dialog:
new KeyEventPropagetionPreventer( your_qt_dialog );
, , . , ( qt-eventystem-only - ), QApplication:: sendEvent() .
, , !
(ps. )