2017-01-04 3 views
1

Я пробуя Ctrl + SHIFT + Tab ярлык, и он не работает. Qt 5.7 в Linux. Простой пример, показывающий проблему:Shorcut StandardKey.PreviousChild не работает на Linux

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Layouts 1.0 

ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    Shortcut { 
     sequence: StandardKey.PreviousChild 
     onActivated: { 
      console.log("prev child") 
     } 
    } 

    Shortcut { 
     sequence: StandardKey.NextChild 
     onActivated: { 
      console.log("next child") 
     } 
    } 

} 

Есть ли что-то, что я сделал неправильно?

ответ

0

Я думаю, вы не сделали ничего плохого. Для меня это тоже не работает. Я прочитал это http://doc-snapshots.qt.io/qt5-5.7/qkeysequence.html#keyboard-layout-issues, но все равно не могу его решить.

Я не могу найти комбинацию клавиш быстрого доступа для Ctrl+Shift+Tab на моих глобальных настройках клавиатуры.

Следующий хак работает на моем конце, когда я непосредственно жестко кодирую последовательность клавиш быстрого доступа sequence: "Ctrl+Shift+Tab", как показано ниже.

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Layouts 1.0 

ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    // Does not work 
    Shortcut { 
     sequence: StandardKey.PreviousChild 
     onActivated: { 
      console.log("prev child") 
     } 
    } 

    // Works but it is a hack 
    Shortcut { 
     sequence: "Ctrl+Shift+Tab" 
     onActivated: { 
      console.log("hard coded pre child") 
     } 
    } 

    Shortcut { 
     sequence: StandardKey.NextChild 
     onActivated: { 
      console.log("next child") 
     } 
    } 
} 
Смежные вопросы