Hello list!

We ported our software from QT3 Support to Pure QT4 and now we are facing some 
different behaviour on the shortcuts, we have managed almost all of the 
problems, unless the Shift+Tab shortcut that we need to intercept.

When it was Qt3 Support we had this:
Q3Action *q3act = new Q3Action(this);
QKeySequence *ks = new QKeySequence(Qt::Key_Backtab);
q3act->setAccel(*ks);
connect(q3act,SIGNAL(activated()),this,SLOT(keypress()));

And when pressed, the SLOT keypress was called and everything was working like 
it should.

To port to QT4 we did this:
QAction *act3 = new QAction(this);
QKeySequence *ks = new QKeySequence(Qt::Key_Backtab);
act3->setShortcut(*ks);
addAction(act3);
connect(act3,SIGNAL(triggered()),this,SLOT(keypress()));


All the other shortcuts worked unless the backtab (shift+tab)! We have tried to 
use this on the keypress event too:
void keyPressEvent( QKeyEvent * e )
{
  // Even if I test Qt::Key_Tab it doens't work either
  if ((e->modifiers()==Qt::ShiftModifier && e->key() == Qt::Key_Backtab) || 
e->key()==Qt::Key_Backtab)
  {
    QMessageBox msgbox;
    msgbox.setText("backtab");
    msgbox.exec();
  }
}

It hadn't worked either.

The only thing that resolved this was to grab the FocusOut event and test if it 
was a backtab reason, but in my personal opinion it is an horrible solution!
Aren't these 2 other methods supposed to work? What are we doing wrong?

Thanks in advance,
Daniel
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to