94 lines
2.7 KiB
QML
94 lines
2.7 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls
|
|
import QtQuick.Controls.Material
|
|
|
|
Item {
|
|
id: root
|
|
|
|
signal keyEvent(keycode: int, text: string)
|
|
|
|
property int hpadding: 0
|
|
property int vpadding: 15
|
|
|
|
property int keywidth: (root.width - 2 * hpadding) / 10 - keyhspacing
|
|
property int keyheight: (root.height - 2 * vpadding) / 4 - keyvspacing
|
|
property int keyhspacing: 2
|
|
property int keyvspacing: 5
|
|
|
|
function emitKeyEvent(key, keycode) {
|
|
keyEvent(keycode, key)
|
|
}
|
|
|
|
ColumnLayout {
|
|
id: rootLayout
|
|
x: hpadding
|
|
y: vpadding
|
|
width: parent.width - 2*hpadding
|
|
spacing: keyvspacing
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
spacing: keyhspacing
|
|
Repeater {
|
|
model: ['q','w','e','r','t','y','u','i','o','p']
|
|
delegate: SeedKeyboardKey {
|
|
key: modelData
|
|
kbd: root
|
|
implicitWidth: keywidth
|
|
implicitHeight: keyheight
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
spacing: keyhspacing
|
|
Repeater {
|
|
model: ['a','s','d','f','g','h','j','k','l']
|
|
delegate: SeedKeyboardKey {
|
|
key: modelData
|
|
kbd: root
|
|
implicitWidth: keywidth
|
|
implicitHeight: keyheight
|
|
}
|
|
}
|
|
// spacer
|
|
Item { Layout.preferredHeight: 1; Layout.preferredWidth: keywidth / 2 }
|
|
}
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
spacing: keyhspacing
|
|
Repeater {
|
|
model: ['z','x','c','v','b','n','m']
|
|
delegate: SeedKeyboardKey {
|
|
key: modelData
|
|
kbd: root
|
|
implicitWidth: keywidth
|
|
implicitHeight: keyheight
|
|
}
|
|
}
|
|
// spacer
|
|
Item { Layout.preferredHeight: 1; Layout.preferredWidth: keywidth }
|
|
}
|
|
RowLayout {
|
|
Layout.alignment: Qt.AlignHCenter
|
|
SeedKeyboardKey {
|
|
key: ' '
|
|
keycode: Qt.Key_Space
|
|
kbd: root
|
|
implicitWidth: keywidth * 5
|
|
implicitHeight: keyheight
|
|
}
|
|
SeedKeyboardKey {
|
|
key: '<'
|
|
keycode: Qt.Key_Backspace
|
|
kbd: root
|
|
implicitWidth: keywidth
|
|
implicitHeight: keyheight
|
|
}
|
|
// spacer
|
|
Item { Layout.preferredHeight: 1; Layout.preferredWidth: keywidth / 2 }
|
|
}
|
|
}
|
|
|
|
}
|