2011-01-07 11 views

Odpowiedz

42

Twoje przyciski prawdopodobnie mają gniazdo podłączone do ich sygnału clicked().

Aby dodać klawisze skrótów, wystarczy podłączyć sygnał klawisza skrótu activated() do tego samego gniazda.

W kodzie #include <QShortcut> a następnie będzie można dodać klawisz skrótu do gniazda jak ten:

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

Jeżeli rodzic jest rodzicem skrótu (na przykład okno główne), yourSlotHere() to nazwa gniazda, do którego skrót ma zostać wywołany, i receiver obiekt, w którym znajduje się yourSlotHere().

Zastąp "Ctrl+O" dowolnym skrótem, który chcesz przypisać.

Można również znaleźć więcej informacji na stronie dokumentacji dla QShortcut.

+2

Czy nie wyciekamy z obiektu 'shortcut' lub nie zostaje on uwolniony, ponieważ określamy rodzica? – Niklas

13

Alternatywnie, jeśli klawisz skrótu odpowiada pewnemu znakowi w tekście przycisku, można wstawić & dla tej postaci. Jeśli chcesz literał &, użyj & &.

3

Dzisiaj (Qt5.7), możemy przypisać skróty bezpośrednio w Qt Designer używając skrótu właściwość:

enter image description here

Dość przydatny .. Nawet jeśli trochę buggy: Muszę „validate "skrót, klikając inną właściwość tego samego widgetu przed przejściem do innego widżetu!

Ale działa.