Qt-Arm交叉编译以及调用虚拟键盘(中英)
环境:Qt5.15.1
交叉编译链:海思的板子,arm-himix200-linux-
demo代码:Qt-Qml混合编程
第一步:环境搭建
1:从官网下载源码https://download.qt.io/archive/qt/5.15/5.15.1/single/ qt-everywhere-src-5.15.1.tar.xz
2:解压源码包到你所需要的目录下,解压命令 (1)xz -d qt-everywhere-opensource-src-5.15.1.tar.xz(2)tar xvf qt-everywhere-opensource-src-5.15.1.tar3://修改交叉编译gcc
vi qt-everywhere-opensource-src-5.15.1/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
将“arm-linux-gnueabi-”改为“arm-himix200-linux-”。4:编译Qt
./configure -release -xplatform linux-arm-gnueabi-g++ -c++std c++11 -prefix /../../qt_vir_keyboard/qt_5.15.1_arm/ -opensource -confirm-license -make libs -no-opengl -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtsensors -skip qtspeech -skip qttools -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -no-feature-iconv -no-feature-gestures
PS:1、命令执行的当前路径是qt-everywhere-opensource-src-5.15.1/2、编译参数的选择可参考如下链接:[编译Qt模块说明](http://c.biancheng.net/view/1842.html)3、交叉编译链的环境变量配置可自行百度,可修改配置文件,也可通过export PATH="":$PATH 命令,设置临时的5:等待命令(执行完毕),执行完毕,会有提示信息,就是你配置安装脚本的一些详细说明,以及接下来的操作步骤6:生成makefile,输入make即可,也可输入make -j4 make -j87:make install总结:上述步骤执行完,如果没有报错,会在你步骤4指定的目录下生成目标文件-prefix /../../qt_vir_keyboard/qt_5.15.1_arm/
第二步:步骤一处理完,可将生成的交叉编译文件拷到板子上,运行程序,进行测试
ps:本人是在win上编写代码,然后,将代码考到linux服务器上,进行编译,再将可执行程序拷到设备上运行,编译及运行命令如下:
编译命令
cd /home/../
cd LoginDemoQml
export PATH="/nfs/../qt_vir_keyboard/qt_5.15.1_arm/bin":$PATH
qmake LoginDemoQml.pro
make
cp -rf ../LoginDemoQml /nfs/../
chmod 777 -R /nfs/../LoginDemoQml运行命令
mount -t nfs -o nolock 192.168.3.28:/nfs/ /nfsroot/export QT_ROOT=/mnt/qt_5.15.1_arm
export PATH=$QT_ROOT/bin:$PATH
export QML2_IMPORT_PATH=$QT_ROOT/qml
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0:mmsize=1920x1080:
export QT_QPA_FONTDIR=$QT_ROOT/lib/fontscd /nfsroot/../LoginDemoQml/
./LoginDemoQml -platform linuxfbPS:运行时会提示很多字体找不到的警告,原因是在/mnt/qt_5.15.1_arm/lib/fonts没有字体库,需要额外添加进来
解决方法:将文件夹目录下的fonts.tar解压到/mnt/qt_5.15.1_arm/lib/fonts目录底下。至于fonts.tar压缩包一般的提供编译链(sdk)厂商都会随开发文档一起给予的,或者在网上搜一个
第三步:调用虚拟键盘
如若需要调用Qt的虚拟键盘,还需要如下配置和环境搭建,ps:以下操作是在步骤一基础上实现
1:编译支持中文的虚拟键盘库
进入拼音的源码目录:
(1)cd qt-everywhere-src-5.15.1/qtvirtualkeyboard/src/plugins/pinyin
(2)使用export PATH="":PATH设置编译环境变量如:exportPATH="/nfs/../qtvirkeyboard/qt5.15.1arm/bin":PATH 设置编译环境变量 如:export PATH="/nfs/../qt_vir_keyboard/qt_5.15.1_arm/bin":PATH设置编译环境变量如:exportPATH="/nfs/../qtvirkeyboard/qt5.15.1arm/bin":PATH
(3)qmake pinyin.pro,生成Makefile。
(4)make,生成拼音的库。进入/qt-everywhere-src-5.15.1/qtvirtualkeyboard/src/virtualkeyboard/目录,修改virtualkeyboard.pro,在Pro文件中对应的位置加入红色框的内容:
进入qt-everywhere-src-5.15.1/qtvirtualkeyboard目录:
1:使用export PATH="":PATH设置编译环境变量如:exportPATH="/nfs/../qtvirkeyboard/qt5.15.1arm/bin":PATH 设置编译环境变量 如:export PATH="/nfs/../qt_vir_keyboard/qt_5.15.1_arm/bin":PATH设置编译环境变量如:exportPATH="/nfs/../qtvirkeyboard/qt5.15.1arm/bin":PATH
2:qmake qtvirtualkeyboard.pro
3:make
4:make install将步骤一/…/…/qt_vir_keyboard/qt_5.15.1_arm/的文件夹重新拷入开发版,运行并测试
最后,贴出主要的代码
在pro文件中,添加如下代码
static{QTPLUGIN+=qtvirtualkeyboardpluginQT+=svg
}
/在main.cpp中添加如下
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
测试的qml文件代码import添加组件
import QtQml 2.2
import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtQuick.VirtualKeyboard 2.15Window { visible: truewidth: 640height: 480title: qsTr("Hello World")Item{ 不可见元素id:root ///唯一的标识width: 200 height: 100anchors.left: parent.left /布局anchors.top: parent.topTextField{ 可输入元素id:_textField anchors.left: parent.leftanchors.top: parent.top//anchors.right: parent.right//anchors.horizontalCenter: parent.horizontalCenteranchors.bottom:_inputPannel.top}InputPanel{ ///Provides the virtual keyboard UI,提供虚拟键盘窗口,详细说明可查看帮助文档id: _inputPannel//width:100 ///虚拟键盘的宽度y:Qt.inputMethod.visible ? parent.height - _inputPannel.height - 100 : parent.height /虚拟键盘的y轴位置anchors.left: parent.left ///这些布局与width互斥anchors.right: parent.right}}}
以下贴出demo运行的图片
写在最后:不足之处,请多多理解,并指出,共同进步!本文参考:https://blog.csdn.net/u012391388/article/details/78485365
Qt-Arm交叉编译以及调用虚拟键盘(中英)相关推荐
- 在浏览器端调试代码并直接修改原文件、移动端虚拟键盘中实现搜索按钮
在浏览器端调试代码并直接修改原文件: 此调试方法可以避免在浏览器调试完代码后在到原文件手动修改代码的弊端,其具体方法如下: 1.先将要调试的页面在浏览器(Google)打开,这里小编打开桌面test文 ...
- 小程序input调用虚拟键盘阻止系统键盘与虚拟键盘点击穿透问题
解决小程序input调用虚拟键盘并阻止调用系统键盘问题与虚拟键盘点击穿透导致下方input获焦问题 点击input弹出虚拟键盘,并不调起系统键盘解决方案 wxml代码 <input type=& ...
- Qt:5.7虚拟键盘中拼音输入法的使用
引言 在Qt5.7中,以前只有企业版才有的虚拟键盘,终于可以在开原版中使用了. 但是默认的Qt安装包,安装出来的虚拟键盘,是不包含拼音输入法的,这里我来说下怎么打开拼音的支持,以及使用了虚拟键盘后,项 ...
- qt 虚拟键盘中的几个瑕疵
最近使用了下面楼主的虚拟键盘,总体还是挺好用的,只是有几个地方,需要完善下. 基于Qt的可用于嵌入式的虚拟键盘_偷段代码的博客-CSDN博客_qt 嵌入式虚拟键盘这几天完成了一个基于Qt的虚拟键盘的编 ...
- Qt调用虚拟键盘(软键盘)
qt作为一个好用的Ui交互制作工具,怎么能缺少外部的IO设备. 在一些应用场景,往往需要一个软键盘(虚拟键盘),闲话少说,直接上方案: 1.首先托几个能输入的控件,外加一个按钮 2. 写代码就完事了: ...
- qt qml virtrulKeyBoard custom style 虚拟键盘自定义样式方法
今天我把纠结了好几天的qml自带的虚拟键盘自定义样式的功能实现了,成功修改键盘的样式颜色. 首先把官网的文档先复制一下, 后面会写我自己的实际操作方法, 英文水平真的很重要!!! Keyboard S ...
- JavaFX调用虚拟键盘
JavaFX嵌入式开发时,支持虚拟键盘. 调用方案: Fill the [VM Options] with: -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.ja ...
- Qt5.7以上调用虚拟键盘(支持中文),以及源码修改(可拖动,水平缩放)
Qt 5.7及以上版本支持了虚拟键盘的支持,但是这个虚拟键盘太不好用,占据半个屏幕,而且不能放大缩小,不能拖动 首先,下载Qt虚拟键盘源码并解压,并切换到该目录下 然后配置支持中文: qmake CO ...
- linux qt5.7以上软键盘,Qt5.7以上调用虚拟键盘(支持中文),以及源码修改(可拖动,水平缩放)...
Qt 5.7及以上版本支持了虚拟键盘的支持,但是这个虚拟键盘太不好用,占据半个屏幕,而且不能放大缩小,不能拖动 首先,下载Qt虚拟键盘源码并解压,并切换到该目录下 然后配置支持中文: qmake CO ...
最新文章
- ruby gem 本地安装方法
- sersync之不洗澡
- boost::regex模块部分正则表达式相关的测试程序
- JavaScript-Map和Set
- Python3.x伪随机,元素重排,矩阵
- js中的逻辑与()和逻辑或(||)(转载)
- 服务器入站规则 共享文件,How to :发布内部网络中的文件共享服务
- AT4RE Patcher v0.6.3使用心得:
- iredmail mysql 密码_iRedMail 批量创建用户 (repost)
- javascript学习心得
- 计算机处理器性能排名,2020电脑cpu性能排行榜天梯图
- icp许可证到期续期注意事项
- JavaScript面向对象
- UltraEdit关闭自动备份
- 想成为“独立名师”,你还要做到哪几点?
- 易买网更多新闻代码_新闻 | 1022Bewhy结婚等更多资讯
- 共享经济app开发方案
- 哈哈哈哈~山野村夫大进展
- 联想X3650M5 无法引导系统的问题
- 病理切片染色技术和生物医学基础知识
热门文章
- 你好,法语!A2知识点总结(1)
- IDE 和SCSI简介
- mysql 1055 - Expression 解决
- Linkedin领英如何批量撤回邀请
- Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
- OpenFOAM常用类
- 在用AI死磕垃圾分类这件小事上,麻省理工、MaxAI们创造了这些利器,神助攻还是花拳绣腿?...
- 勒索病毒频发,信息安全事件如何破 --记两次勒索病毒数据恢复实例
- 统计代码放在网站php,网站添加简单访客统计代码
- 华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程