Qt virtualkeyboard - пользовательская раскладка не влияет на высоту клавиатуры? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь использовать Qt Virtual Keyboard. Я хочу изменить высоту клавиатуры. Поэтому я начал создавать свою собственную раскладку клавиатуры, как сказано в документации к Qt Virtual Keyboard. Но раскладка меняет только количество клавиш в одном ряду. Не высота строки или размер кнопок, даже когда я пишу вес опции ключа или высоту строки. Я что-то пропустил? Ниже приведен некоторый код, который у меня есть:

KeyboardLayout {
    inputMode: InputEngine.InputMode.Latin
    keyWeight: 300

    KeyboardRow {
      Key {
          key: Qt.Key_Q
          text: "q"
          weight:600
          height: 100
      }
      Key {
          key: Qt.Key_W
          text: "w"
          weight:600
      }
      Key {
          key: Qt.Key_E
          text: "e"
          weight:600
      }
      Key {
          key: Qt.Key_R
          text: "r"
          weight:600
      }

      Key {
          key: Qt.Key_T
          text: "t"
          weight:600
      }
    }
    KeyboardRow {
      Key {
          key: Qt.Key_Z
          text: "z"
      }
      Key {
          key: Qt.Key_U
          text: "u"
      }
      Key {
          key: Qt.Key_I
          text: "i"
      }
      Key {
          key: Qt.Key_O
          text: "o"
      }

      Key {
          key: Qt.Key_P
          text: "p"
      }
    }

    KeyboardRow {
      Key {
          key: Qt.Key_Udiaeresis
          text: "ü"
      }
      BackspaceKey {}


      FillerKey {
          weight: 66
      }
      Key {
          key: Qt.Key_A
          text: "a"
      }
      Key {
          key: Qt.Key_S
          text: "s"
          alternativeKeys: "sß"
      }
    }

    KeyboardRow {
      Key {
          key: Qt.Key_D
          text: "d"
      }
      Key {
          key: Qt.Key_F
          text: "f"
      }
      Key {
          key: Qt.Key_G
          text: "g"
      }
      Key {
          key: Qt.Key_H
          text: "h"
      }
      Key {
          key: Qt.Key_J
          text: "j"
      }
    }
    KeyboardRow {
      Key {
          key: Qt.Key_K
          text: "k"
      }
      Key {
          key: Qt.Key_L
          text: "l"
      }
      Key {
          key: Qt.Key_Odiaeresis
          text: "ö"
      }
      Key {
          key: Qt.Key_Adiaeresis
          text: "ä"
      }
      EnterKey {
          weight: 283
      }
    }
    KeyboardRow {
      keyWeight: 156
      ShiftKey { }
      Key {
          key: Qt.Key_Y
          text: "y"
      }
      Key {
          key: Qt.Key_X
          text: "x"
      }
      Key {
          key: Qt.Key_C
          text: "c"
      }
      Key {
          key: Qt.Key_V
          text: "v"
      }
    }
    KeyboardRow {
      Key {
          key: Qt.Key_B
          text: "b"
      }
      Key {
          key: Qt.Key_N
          text: "n"
      }
      Key {
          key: Qt.Key_M
          text: "m"
      }
      Key {
          key: Qt.Key_Comma
          text: ","
      }
      Key {
          key: Qt.Key_Period
          text: "."
      }
    }
    KeyboardRow {
      keyWeight: 154
      Key {
          key: Qt.Key_Minus
          text: "-"
      }
      ShiftKey {
          weight: 264
      }
      SymbolModeKey {
          weight: 217
      }
      ChangeLanguageKey {
          weight: 154
      }
      HandwritingModeKey {
          weight: 154
      }
    }
    KeyboardRow {
      SpaceKey {
          weight: 864
      }
      Key {
          key: Qt.Key_Apostrophe
          text: "'"
      }
      Key {
          key: 0xE000
          text: ":-)"
          alternativeKeys: [ ";-)", ":-)", ":-D", ":-(", "<3" ]
      }
      HideKeyboardKey {
          weight: 204
      }
    }
}

Я хочу изменить размер клавиатуры по высоте. Например, теперь он вычисляет высоту в соответствии с шириной, поэтому допустим, что он имеет высоту 250 пикселей, а следующие 400 пикселей пусты. Поэтому я подумал, что с пользовательской раскладкой и измененными весами клавиш высота также будет увеличиваться, но это только увеличит ширину клавиш на клавиатуре, чтобы они заполнили весь ряд клавиш.

...