QML虚拟键盘:keyboardDesignWidth和Height [英] qml virtual keyboard: keyboardDesignWidth and Height

查看:48
本文介绍了QML虚拟键盘:keyboardDesignWidth和Height的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究虚拟键盘的QML样式。键盘DesignWidth和Height的用途是什么?我似乎在管理键盘的宽度和高度上有很多困难,而且从来都不能把它设置成我想要的样子。直接设置键盘高度和宽度也没有太大帮助。

问题在于组件背景大小是在幕后以某种方式计算出来的。因此,即使我有了键盘按钮和我想要的大小,无关的背景也覆盖了我的一些其他控件,很难对键盘的大小进行细粒度控制。

直接控制虚拟键盘宽度和大小的正确方式是什么?

推荐答案

报价自Documentation

键盘大小是根据可用宽度自动计算的;也就是说,键盘保持当前样式指定的纵横比。因此,应用程序应该只设置InputPanel的宽度和y坐标,而不是高度。

因此,如果您希望具有特定的高度,则需要相应地设置宽度。

直接控制虚拟键盘宽度和大小的正确方式是什么?

例如

InputPanel {
    anchors.fill: parent
    anchors.leftMargin: 100
    anchors.rightMargin: 100
}

例如

InputPanel {
    anchors.horizontalCenter: parent.horizontalCenter
    anchors.bottom: parent.bottom
    width: 30
}

那么keyboardDesignHeight/Width是怎么回事?这似乎是键盘的尺寸,当不需要缩放时:

scaleHint:REAL
键盘样式比例提示。该值通过将keyboardHeight除以keyboardDesignHeight来确定。所有像素尺寸必须与此值成比例。
此属性为只读!

因此,设置这些选项不会禁用根据宽度自动调整输入面板的大小。

您可能会使用它们来计算比率,并由此设置宽度以达到您所需的高度。

也许此示例可以帮助您理解此属性:

import QtQuick 2.6
import QtQuick.Window 2.0
import QtQuick.Controls 2.0
import QtQuick.VirtualKeyboard 2.0

ApplicationWindow {
    id:appwindow
    visible: true
    width: 800
    height: 600
    title: qsTr("Test")


    InputPanel {
        id: ip
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
        width: 800

        Component.onCompleted: console.log(Object.keys(ip.keyboard.style).sort())
    }

    Slider {
        id: sl
        from: 0
        to: 3000
    }

    Binding {
        target: ip.keyboard.style
        property: 'keyboardDesignHeight'
        value: sl.value

    }
}

这篇关于QML虚拟键盘:keyboardDesignWidth和Height的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆