Zuweisen von Tastenkombinationen zu QML-Komponenten

8

Ich arbeite intensiv an der Erstellung einer Desktop-Anwendung mit QML und Qt Creator und erforsche derzeit die Handhabung von Tastaturen und die Funktionsweise von QML-Elementen. Ich bin mir bereits bewusst, dass es keine geeigneten QML-Ersetzungen für Desktop-Widgets gibt.

Mein aktuelles Problem ist, dass ich einigen bestimmten QML-Komponenten einige globale Tastaturkurzbefehle zuweisen möchte (z. B. Tastenkombinationen auf der GUI Tastenkombinationen zuweisen), die sie aktivieren sollen. Das Beste, was ich schaffen könnte, ist die Verwendung von FocusScopes und Key Navigation, um einfach über Tastaturen durch die GUI zu navigieren, aber das ist nicht das Gleiche.

Kann jemand vorschlagen, was in diesem Szenario zu tun ist? Gibt es eine solche Funktion mit Qt 5? Ich konnte dazu im Internet keine Informationen finden.

    
Vikas Bhargava 30.08.2012, 08:25
quelle

4 Antworten

8

Beantworten Sie meine eigene Frage, da die Shortcuts jetzt in Qt 5.1.1 implementiert werden können. Verknüpfungen können einfach an QtQuick -Steuerelemente wie Button , ToolButtons und MenuItem mit dem Element QML Action gebunden werden. z.B. :

%Vor%

Durch Drücken von Strg + O wird die im Abschnitt onTrigger angegebene Aktion ausgeführt.

Siehe Qt Quick Controls-Beispiel

    
Vikas Bhargava 26.11.2013, 13:11
quelle
4

Sie können die Verknüpfung in QML vollständig verwenden, indem Sie EventFilter in C ++ (Qt) verwenden.

Sie können die folgenden Schritte ausführen:

%Vor%

%Vor%

%Vor%

%Vor%

%Vor%
    
Ken 23.03.2015 02:10
quelle
0

Wenn Sie also eine Funktion auf dieser Schaltfläche aufrufen, klicken Sie auf ein Ereignis wie dieses,

%Vor%

Dann können Sie auf diese Weise globale Tastenkombinationen zuweisen. Aber die Beschränkung ist das globale QML-Element (ein Elternelement, das alle anderen QML-Elemente enthält) sollte den Fokus haben. Ex. :

%Vor%

Dies ist nicht genau das, was Sie wollen, aber es kann helfen.

    
RajaRaviVarma 11.09.2012 09:53
quelle
0

Ab Qt 5.9 ist das gewünschte Verhalten sogar enthalten :

%Vor%

Wenn Sie den Kontext weglassen, wird er nur für aktuell aktive Fenster funktionieren, ansonsten für die gesamte Anwendung, siehe Dokumentation .

    
martin 20.02.2018 16:02
quelle

Tags und Links