2009-08-18 11 views
3

J'ai un problème étrange avec le concepteur Qt. J'ai le raccourci suivant pour une action de rafraîchissement: F5, Ctrl + RRaccourcis clavier multiples pour l'action dans Qt Designer

L'idée est que sur Macintosh, Ctrl + R cartes à Commande + R qui est plus intuitif et sur Windows, F5 fait le travail.

Le problème est que seul le premier raccourci semble être actif. Y at-il un moyen pour moi de changer le raccourci de l'action afin que nous ayons Ctrl + R actif sur Mac et F5 partout ailleurs? Je sais que je peux le faire en code mais je préfère le faire en designer.

Répondre

0

Cela peut être résolu de plusieurs façons. Au début, vous pouvez utiliser QKeySequence et affecter QKeySequence::Refresh en tant que raccourci. Une autre façon est de créer QList avec 2 QKeySequence éléments créés avec Qt::Key enum: Qt::Key_F5 et Qt::Key_Control + Qt::Key_R (sous Mac OS X Commande buttton seront affectés, sur les autres Ctrl). Cette liste est ensuite passée à QActionsetShortcuts(). Après cela, sur Max OS X F5 et Commande +R déclenche une action de rafraîchissement, et sur d'autres systèmes F5 et Ctrl +R. Enfin, si vous souhaitez définir Commande + R sans F5 sur Mac OS X et F5 sans Ctrl + R sur les autres, vous devez faire la compilation conditionnelle, à savoir:

#ifdef Q_WS_MAC 
//set Qt::Key_Control + Qt::Key_R 
#else 
//set Qt::Key_F5 

plus sur OS définit vous trouverez here

+0

Je sais comment le faire dans le code, ma question était sur la façon de le faire dans Designer :) – cheez

+0

@cheez dans le concepteur dans l'éditeur d'action, vous devez cliquer sur l'action puis dans le champ de raccourci appuyez sur les touches. Sur Mac OS X Ctrl sera modifié en Command par qt, sans aucun travail supplémentaire. – Maciej

+0

Y a-t-il un moyen pour moi de changer le raccourci de l'action pour que Ctrl + R soit actif sur Mac et F5 partout ailleurs? Je sais que je peux le faire en code mais je préfère le faire en designer. – cheez