Windows下QT使用VirtualKeyboard键盘

本文介绍了在Windows环境下,使用QT5.14版本集成VirtualKeyboard的两种方法。通过设置环境变量和导入相关模块,实现在TextField上点击自动弹出虚拟键盘的功能。同时,展示了代码实现细节,包括InputPanel控件的使用,以及处理键盘隐藏的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司最新的项目要使用QT,
快不惑年纪的年龄学下QT怎么玩...
之前虚拟键盘的问题在Linux下编译使用,老是发现模块没有找到,
反正都是学习下使用,
所以还是找了下Windows下的QT的版本如何使用,
直接上菜~

在main.cpp中设置:

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
使用这种方式必须在QGuiApplication app(argc, argv)之前:



第一种集成方式
只需要导入键盘模块:

import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.VirtualKeyboard 2.2

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

    TextField {
        anchors.top: parent.top
        anchors.horizontalCenter: parent.horizontalCenter
    }
}

当我们点击TextField的输入框的时候就会自动调出键盘:


第二种集成方式
需要创建一个InputPanel控件:

import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.VirtualKeyboard 2.2

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

    TextField {
        anchors.top: parent.top
        anchors.horizontalCenter: parent.horizontalCenter
        onPressed: {
            vkb.visible = true; //当选择输入框的时候才显示键盘
        }
    }

    InputPanel {
        id: vkb
        visible: false
        anchors.right: parent.right
        anchors.left: parent.left
        anchors.bottom: parent.bottom
        //这种集成方式下点击隐藏键盘的按钮是没有效果的,
        //只会改变active,因此我们自己处理一下
        onActiveChanged: {
            if(!active) { visible = false; }
        }
    }
}

最后效果如下:



备注,我Windows下使用的QT的版本是5.14的版本,可以使用.

### Qt Windows 虚拟键盘使用教程 要在 Windows 平台上成功使用 Qt 的虚拟键盘 (Virtual Keyboard),需要完成以下几个方面的操作: #### 1. 配置开发环境 为了启用 Virtual Keyboard 功能,需确保已正确设置开发环境。通过 Qt Creator 打开 `D:\qtvirtualkeyboard\qtvirtualkeyboard\qtvirtualkeyboard.pro` 文件来加载项目[^1]。 #### 2. 编译 Virtual Keyboard 模块 进入指定路径 `D:\Qt\Qt5.13.2\5.13.2\qt-everywhere-src-5.13.2\qtvirtualkeyboard\src\virtualkeyboard` 后执行编译命令以构建 Virtual Keyboard 模块[^3]。此过程可能涉及运行以下脚本或命令: ```bash qmake && nmake ``` 如果遇到任何错误,请确认 Qt 版本与 Visual Studio 工具链匹配,并验证是否安装了必要的依赖项。 #### 3. 修改应用程序配置 为了让应用支持 Virtual Keyboard,在项目的 `.pro` 文件中添加如下内容以引入模块: ```plaintext QT += qtvirtualkeyboard ``` 同时在 QML 中声明输入面板组件的位置并初始化它。可以参考官方文档中的示例代码片段[^2]: ```qml import QtQuick.VirtualKeyboard 2.0 InputPanel { id: inputPanel anchors.bottom: parent.bottom } ``` #### 4. 发布程序时的额外步骤 当准备发布基于 Virtual Keyboard 的应用程序时,除了主可执行文件外还需要复制若干资源文件至目标目录。具体来说,应从 QT 安装目录提取下列必要部分[^5]: - **QML 文件**: 将位于 `qml/QtQuick/VirtualKeyboard` 下的所有数据拷贝过来; - **插件库**: 把 plugins/virtualkeyboard 内部的内容也一并迁移过去; 这样做的目的是保证最终产品能够在脱离原始开发机器的情况下独立正常运作。 #### 示例代码展示 下面给出一段简单的 Python 实现逻辑作为补充说明(尽管实际这里讨论的是 C++ 和 QML 结合的情况),用于模拟调用外部 API 或服务端接口获取动态更新的数据源列表场景: ```python def fetch_data(api_url): import requests try: response = requests.get(api_url) if response.status_code == 200: data_list = response.json() return data_list['items'] else: raise Exception('Failed to load data') except Exception as e: print(f'Error occurred while fetching data:{e}') if __name__=='__main__': api_endpoint='https://example-api.com/items' items=fetch_data(api_endpoint) for item in items[:5]: #仅显示前五个条目供测试查看 print(item['title']) ``` 以上仅为辅助理解而设的例子,并非直接关联于本文主题——即关于如何在 Windows 上部署和运用 Qt Framework 提供的触屏软键盘功能的技术细节探讨之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值