2011-01-07 39 views

Respuesta

42

Sus botones probablemente tengan una ranura conectada a su señal clicked().

Para agregar teclas de método abreviado, simplemente conecte la señal de una tecla de acceso directo activated() a la misma ranura.

En su código, #include <QShortcut> y entonces usted será capaz de añadir una tecla de acceso directo para una ranura de la siguiente manera:

QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+O"), parent); 
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(yourSlotHere())); 

Dónde padre es el padre de su acceso directo (por ejemplo, la ventana principal), yourSlotHere() es el nombre de la ranura que desea que el atajo llame, y receiver es el objeto donde está yourSlotHere().

Reemplace "Ctrl+O" con el atajo que desee asignar.

También puede encontrar más información en la página de documentación para QShortcut.

+2

¿No estamos filtrando el objeto 'shortcut' o se libera dado que especificamos el elemento primario? – Niklas

13

Alternativamente, si la tecla de método abreviado corresponde a algún carácter en el texto del botón, puede preped & a ese carácter. Si quiere un literal &, use & &.

3

Hoy (Qt5.7), que puede asignar accesos directos directamente en Qt Designer utilizando el acceso directo propiedad:

enter image description here

bastante práctico .. Aunque un poco buggy: Tengo que "Validar "¡El acceso directo haciendo clic en otra propiedad del mismo widget antes de cambiar a otro widget!

Pero funciona.

Cuestiones relacionadas