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.
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. :
Durch Drücken von Strg + O wird die im Abschnitt onTrigger angegebene Aktion ausgeführt.
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.
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 .