完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
qt5软虚拟键盘使用
.pro文件修改 qt5要使用虚拟键盘只能使用qml布局,不然无法使用 工程文件.pro 增加 DEFINES += QT_QML QT += qml quick RESOURCES += demo.qrc OTHER_FILES += virkey.qml demo.qrc中增加virkey.qml qml布局文件 virkey.qml文件内容如下 import QtQuick 2.0 import QtQuick.Window 2.2 import QtQuick.VirtualKeyboard 2.1 Window { visible: true width: 1024 height: 600 Textinput { text: "11111111111" font.pointSize: 20 anchors { left: parent.left; right: parent.right; margins: 12 } } TextEdit { anchors.centerIn: parent width: 500 height: 200 text: "+++test+++" focus: true color: "blue" font.pointSize: 20 readOnly: false } InputPanel { id: inputPanel z: 99 y: parent.height anchors.left: parent.left anchors.right: parent.right states: State { name: "visible" /* The visibility of the InputPanel can be bound to the Qt.inputMethod.visible property, but then the handwriting input panel and the keyboard input panel can be visible at the same time. Here the visibility is bound to InputPanel.active property instead, which allows the handwriting panel to control the visibility when necessary. */ when: inputPanel.active PropertyChanges { target: inputPanel y: parent.height - inputPanel.height } } transitions: Transition { from: "" to: "visible" reversible: true ParallelAnimation { NumberAnimation { properties: "y" duration: 250 easing.type: Easing.InOutQuad } } } } } 其中 import QtQuick 2.0 import QtQuick.Window 2.2 import QtQuick.VirtualKeyboard 2.1 必需要有,然后InputPanel也必需要有,不然虚拟键盘不会弹出来 这只是其中一种方式,应该还有其它方法 main.cpp如下 #include "mainwindow.h" #include #include #ifdef QT_QML #include //#include //#include //#include #endif int main(int argc, char *argv[]) { #ifdef QT_QML qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QApplication a(argc, argv); QQmlApplicationEngine eng; eng.load(QUrl(QStringLiteral("qrc:/virkey.qml"))); if(eng.rootObjects().isEmpty()) { qDebug()<<"+++eng.rootObjects().isEmpty(+++"; return -1; } #else qputenv("QT_IM_MODULE", QByteArray("Qt5input")); QApplication a(argc, argv); MainWindow w; w.show(); #endif qDebug()<<"+++qt5hello+++"; return a.exec(); } 效果如下 软键盘使用 生成库文件 由于qt5以上版本接口变换,qt4以前的软键盘无法使用,参考上面文章编译生成so文件 libQt5Inputplugin.so需要依赖googlepinyin.a文件,首先需要编译生成googlepinyin.a 然后放到工程Qt5Input目录下的pinyin目录下,参与静态编译即可 将编译生成的libQt5Inputplugin.so放到QT安装目录下的plugins/platforminputcontexts目录下 或者放到与应用程序同级目录的platforminputcontexts目录下 将Qt5Input目录中的dict和images目录放到目标板同一个目录中 然后声明环境变量QT5_INPUT_DIR 例如将dict和images目录放在/QTDIR/qt5inputdir的目录下,然后声明如下 export QT5_INPUT_DIR=/QTDIR/qt5inputdir 或者在main.cpp中进行设置 工程文件修改 将.pro文件中DEFINES += QT_QML注释掉,然后使用默认ui布局增加输入框 main.cpp不用修改 效果如下 原作者:红尘六欲 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
如何配置Linux操作系统设备树让我的开发板可以将板子上的GPIO接口用作 I2S输出??
1469 浏览 1 评论
1340 浏览 0 评论
2025 浏览 0 评论
2006 浏览 2 评论
1116 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 11:18 , Processed in 0.507610 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号