This should help
{
public:
explicit Widget
(QWidget * parent
= 0) {
installEventFilter(this);
}
protected:
{
if(event->KeyPress)
{
QKeyEvent * keyEvent
= static_cast<QKeyEvent
*>
(event
);
if(keyEvent
->type
() == QEvent::KeyPress) {
if(keyEvent->modifiers().testFlag(Qt::AltModifier) &&
keyEvent->modifiers().testFlag(Qt::ControlModifier) )
{
switch(keyEvent->key())
{
case Qt::Key_Left: setText("Alt + Ctrl + Key_Left"); break;
case Qt::Key_Up: setText("Alt + Ctrl + Key_Up"); break;
case Qt::Key_Right: setText("Alt + Ctrl + Key_Right"); break;
case Qt::Key_Down: setText("Alt + Ctrl + Key_Down"); break;
default: setText("Use Only Arrow Keys"); break;
}
}
else
setText("Use Alt + Ctrl");
}
}
return false;
}
};
int main(int argc, char **argv)
{
Widget widget;
widget.show();
return app.exec();
}
class Widget : public QLabel
{
public:
explicit Widget(QWidget * parent = 0)
: QLabel(parent)
{
installEventFilter(this);
}
protected:
bool eventFilter(QObject *, QEvent * event)
{
if(event->KeyPress)
{
QKeyEvent * keyEvent = static_cast<QKeyEvent *>(event);
if(keyEvent->type() == QEvent::KeyPress)
{
if(keyEvent->modifiers().testFlag(Qt::AltModifier) &&
keyEvent->modifiers().testFlag(Qt::ControlModifier) )
{
switch(keyEvent->key())
{
case Qt::Key_Left: setText("Alt + Ctrl + Key_Left"); break;
case Qt::Key_Up: setText("Alt + Ctrl + Key_Up"); break;
case Qt::Key_Right: setText("Alt + Ctrl + Key_Right"); break;
case Qt::Key_Down: setText("Alt + Ctrl + Key_Down"); break;
default: setText("Use Only Arrow Keys"); break;
}
}
else
setText("Use Alt + Ctrl");
}
}
return false;
}
};
int main(int argc, char **argv)
{
QApplication app(argc, argv);
Widget widget;
widget.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
or simple
...
if((Qt::ControlModifier | Qt::AltModifier) & f_event->modifiers())
...
...
if((Qt::ControlModifier | Qt::AltModifier) & f_event->modifiers())
...
To copy to clipboard, switch view to plain text mode
Bookmarks