QT显示中文 连接上文
1.首先是建立Linux开发环境
1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227600,安装完成后进行汉化,由于要覆盖文件,所以要先在任务管理器中结束所有有关VMware的进程,然后将汉化文件覆盖到VMware的安装目录,至此VMware虚拟机软件安装完成。
1.2.虚拟机软件安装成功后,就开始安装Linux操作系统,这里我使用的Ubuntu10.04长期支持版,可以到Ubuntu的官方网站上下载,下载地址为:http://www.ubuntu.org.cn/desktop/get-ubuntu/download/或者http://releases.ubuntu.com/lucid/(第一个不行就使用第二个);
下载完成后打开虚拟机,在起始页上点击新建虚拟机,然后选中Ubuntu镜像文件的路径,然后是输入用户名、下一步、最后是定制硬件,可以根据自己需要添加,这里我把内存调整为1G,额外添加了一个串口,最后完成开始自动安装,这个过程是全自动的,基本不需要手动操作,下面我们就是等待安装完成。(安装的快慢跟你的机器配置有关);
安装完成,大概用了不到两个小时,但是在登录界面却无法使用键盘。
解决方法:
(1) 开户屏幕键盘功能 在上图开机界面在右下角单击小人图案,再单击“Universal Access Perferences”,
点击“Universal Access Perferences”对话框,
在对话框中选中“Use on-screen keyboard”(使用屏幕键盘),以开启屏幕键盘功能,这时会有一个屏幕键盘快速闪过;
(2) 重新启动打开屏幕键盘输入密码开启屏幕键盘功能后重新启动系统,这时就可以通过上面的步骤打开屏幕键盘,输入相应的密码
(3) 登录后键盘功能正常使用。
注意在(1)步后没出现软键盘, 需要重启机器。
(4)进入系统之后,要修改/etc/default/console-setup. 的文件内容 原文 XKBMODEL="SKIP" XKBLAYOUT="us" XKBVARIANT="U.S. English" XKBOPTIONS="" 改成 XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="" 然后重启,这样在登入界面时就可能使用键盘了。
这里我们使用root账户,在命令行输入:sudo passwd root,输入两次密码后添加root账户成功,重启,使用root账户登录,
然后是设置软件源,首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup,而后用gedit或其他编辑器打开: gedit /etc/apt/sources.list,到官方选中合适的源,这里我们选择163的源,具体为:
deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse,
替换掉文件中所有的内容保存编辑好的文件:,然后,刷新列表:
apt-get update
终端设置小技巧
因为经常会用到终端:所以把终端加到右键菜单:
apt-get install nautilus-open-terminal
至此我们的Linux操作系统基本安装成功。但是语言还是英文,大家可以根据自己喜好是否调整为中文,调整方法,打开system菜单下administration下的language support,出现语言配置对话框,然后你可以选中最下面的installl/removae language安装中文或者其他语言,在调整后重启系统起效!
2.安装开发工具QT
首先需要说明的是,我们把QT的安装分为两部分,第一、安装在LinuxPC机下开发的QT以及IDE开发工具QT Creator。第二、安装交叉编译的QTE以及移植QTE到博创star2410开发板,下面我们开始正式安装。
2.1.安装LinuxPC机上的开发工具QT
首先我们到QT的官方网站下载Linux下的QT版本,下载地址为:http://qt.nokia.com/downloads-cn,这里我们直接下载最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb) (软件开发工具包)里面包括QT4.6.3以及QT IDE开发工具QT Creator,由于我们是直接下载编译好的二进制包,所以我们只需要更改一下文件的属性,变为可执行就行了,具体命令为:chmod +x qt-sdk-linux-x86-opensource-2010.04.bin,
这样我们就能在文件的目录里执行./qt-sdk-linux-x86-opensource-2010.04.bin,然后就开始安装了。
然后点击next、I accept the agreement、next、(默认安装路径为/opt/qtsdk-2010.04,你可以根据自己喜好更改路径,这里我们选择默认)
、next、(在选择组件对话框里我们依然默认)next、(外部管理对话框,默认)next、(准备安装)next后开始安装,我们只需要等待就行,最后点击finish安装完成,
我们会在桌面发现多了一个图标,这说明我们的QT以及Qt Creator安装成功,
最后一步就是设置环境变量,具体步骤如下:
使用编辑器打开配置文件 命令为:gedit ~/.profile ,
在文件的最后添加export QTDIR=$PATH:/opt/qtsdk-2010.04/qt
export PATH=$PATH:/opt/qtsdk-2010.04/qt/bin
环境变量设置完成,重启系统,但是现在我们的QT还不能使用,
因为我们的LinuxPC机没有安装标准C开发环境,最后再执行一条命令:
apt-get install build-essential libncurses5-dev,
至此我们的PC机QT开发工具就安装完成了,可以正常使用了。
2.2.搭建QTE-arm环境并移植QTE以及tslib1.4到博创star2410开发板
首先我们要先安装交叉编译工具链,这里我们使用的交叉编译器为博创公司提供的版本为arm-linux-gcc3.4.6,将arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2放到/root/song目录下,然后打开目录解压编译器,具体命令为:
tar xjvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 -C /usr/local/(注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。),这样我们就将编译器安装在了/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/下,然后设置环境变量,仍然是:
gedit ~/.profile
在文件最后添加:
export PATH=$PATH:/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin,
保存文件,然后执行:
source ~/.profile是变量立即生效,
然后在命令行下输入:
arm-linux-gcc -v
检查是否安装成功,安装成功则出现:
Reading specs from /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/specs
Configured with: /home/samba/armlinux/crosstool/crosstool-0.42/build/arm-linux/gcc-3.4.6-glibc-2.3.6/gcc-3.4.6/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux --with-headers=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.6
否则可能是环境变量设置问题,仔细检查应该就能解决。
交叉编译器安装成功后,我们就开始解压及编译触摸屏软件tslib1.4.tar.gz,具体步骤如下:打开文件所在目录:cd /root/song ,解压:tar xjvf tslib-1.4.tar.bz2,进入解压目录:cd tslib-1.4,修改脚本:gedit build.sh,原来的内容为:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
#./configure --prefix=/mnt/nfs/tslib1.4-install --host=arm-linux
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/mnt/nfs/Trolltech/QtopiaCore-4.3.3/tslib1.4
make
make install
修改后:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/usr/local/tslib
make
make install
保存退出并执行:./build.sh开始编译并安装,中间没有出错,成功安装到了/usr/local/tslib目录下,tslib1.4编译成功。
下面开始编译安装qte4.6.3-arm,首先到官方下载最新版的qte,版本为:qt-everywhere-opensource-src-4.6.3.tar.gz ,下载地址为:http://qt.nokia.com/downloads/embedded-linux-cpp,然后开始编译安装,
具体步骤如下:进入文件所在目录:
cd /root/song,
解压:tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz,
进入解压目录:
cd qt-everywhere-opensource-src-4.6.3,
修改错误文件:
gedit src/3rdparty/freetype/include/freetype/config/ftconfig.h,
将第330行修改为:
"orr %0, %0,%2, lsl #16/n/t" /* %0 |= %2 << 16 */,
防止出现如下错误:
text/qfontengine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
text/qfontengine_ft.cpp:696: warning: converting to `int' from `qreal'
{standard input}: Assembler messages:
{standard input}:781: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
{standard input}:792: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
{standard input}:7752: Error: register or shift expression expected -- `orr r3,r0,lsl#16'
{standard input}:7765: Error: register or shift expression expected -- `orr r1,r0,lsl#16'
make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 错误 1
make[1]:正在离开目录 `/root/song/qt-everywhere-opensource-src-4.6.3;
然后开始配置configure:命令为:
./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/Trolltech/qte4.6.3-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -I/usr/local/tslib/include -L/usr/local/tslib/lib -v -D__ARM_ARCH_5TEJ__,
然后输入o回车,再输入yes回车开始配置,配置成功提示:
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/qte4.6.3-arm
To reconfigure, run 'make confclean' and 'configure'.
然后开始编译:make,需要等待一会,快慢视个人配置。大概半个小时左右make完毕,然后执行:
make install,
完成后qte就被安装在了/usr/local/qte4.6.3-arm下面,至此,qte4.6.3-arm编译安装成功。
然后我们开始把qte移植到博创star2410开发板上,具体步骤为:
1.复制tslib库以及ts目录,
cp /usr/local/tslib/lib/libts* /usr/local/qte4.6.3-arm/lib/,cp -rf /usr/local/tslib/lib/ts /usr/local/qte4.6.3-arm/lib/,
进入目录:
cd /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib,
继续拷贝库:
cp libgcc_s.so.1 /usr/local/qte4.6.3-arm/lib/,cp librt.so.1 /usr/local/qte4.6.3-arm/lib/,cp libstdc++.so.6 /usr/local/qte4.6.3-arm/lib/,cp libz.so.1 /usr/local/qte4.6.3-arm/lib/,
拷贝库完成,对于有些库文件,可以裁剪一下,命令如下:
arm-linux-strip libstdc++.so.6,
最后将/usr/local/qte4.6.3-arm/lib/中的所有文件打包,命令如下:
tar czvf lib-new.tar.bz2 *,
然后再将tslib校准程序移植,
cd /usr/local/tslib/lib,拷贝需要的库文件,
cp /usr/local/qte4.6.3-arm/lib/librt.so.1 .,cp /usr/local/qte4.6.3-arm/lib/libz.so.1 .,
最后将整个tslib目录打包,命令如下:tar czvf touch.tar.bz2 *,
最后将我们所有打包的文件以及前面交叉编译的MPlayer全部放到一个目录下,这里我建立了一个embed目录,将所有包放进去,解压整理,最终生成一个应用程序包,其中包括MPlayer,触摸屏校准程序,usb设备挂载,以及qte4.6.3,包的名字为:
embed.tar.bz2。
至此我们的移植以接近尾声,下面我们把编译好的应用程序包下载到star2410上,步骤如下:
先在Linux下面使用minicom连接上板子,设置板子的IP使和主机在同一网段,命令如下:
ifconfig eth0 192.168.88.189 broadcast 192.168.88.254 ,然后再执行inetd,是更改生效。
然后在windows下使用FlashFXP软件匿名连接板子的IP,连接上后,将embed.tar.bz2传送到板子,很快就可以传完,然后在板子上,进入root目录,执行命令:
mv /root/system/var/ftp/pub/embed.tar.bz2 .,然后解压程序包:
tar xzvf embed.tar.bz2,这样root目录下就出现了我们的程序目录,首先我们进入touch目录进行触摸屏校准,我们先写touch.sh一个脚本方便程序执行,脚本内容如下:#bin/sh
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
/root/touch/bin/ts_calibrate
/root/touch/bin/ts_test
保存退出,执行脚本:./touch.sh,出现如下错误:No raw modules loaded.
ts_config: Success
No raw modules loaded.
ts_config: Success
解决方法:vi etc/ts.conf,将文件中第二行# module_raw input前面的#号去掉,然后在执行脚本,屏幕上出现校准程序,点击十字架开始校准,至此,tslib1.4移植成功!
最后我们进入qte4.6.3目录中,同样我们也写一个脚本方便程序运行,脚本qt.sh内容如下:export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export QTDIR=$PWD
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export QT_QWS_FONTDIR=$PWD/lib/fonts
export LANG=zh_CN
export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"
/root/qte4.6.3/bin/demo -qws
保存退出,然后执行:./qt.sh
出现以下错误,并且触摸屏不能使用:No raw modules loaded.
QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di'
Please check your tslib installation!
解决方法:还是将etc/ts.conf文件中的第二行前面的#号去掉,保存退出,在执行./qt.sh,成功,无任何提示,屏幕显示我们的例子,并且触摸屏使用正常,至此,我们的qte4.6.3、tslib1.4的编译安装以及移植到博创的star2410板子上的工作全部完成!
QT显示中文 连接上文的更多相关文章
- QT显示中文的几个问题
最近用QT,需要在界面上显示中文,发现QT无法直接在代码中写中文,只能通过曲线救国的方式,比如用QT语言家,QTextCodec的fromloca8bit 研究了半天,终于明白了一些编码的问题 1.V ...
- 【ARM-Linux开发】ARM板卡上QT显示中文
平台:Freescale imx6 编译系统:yocto Qt版本:5.5.1 刚弄了个Qt程序到开发板,发现中文都没有显示,英文可以显示. 就加了个中文字库.DroidSansFallback ...
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
来源:http://blog.sina.com.cn/s/blog_a6fb6cc90101art3.html 在编写Qt程序的时候,总会碰到中文问题,一直都很困惑,原本在使用QLineEdit的时候 ...
- 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式 ...
- 如何让移植的嵌入式ARM显示中文汉字
如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont 1.首先,需要文泉驿 ...
- 嵌入式qt显示中文和隐藏鼠标
最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下 qt显示中文: 如果你急于在ARM ...
- XShell连接 Linux系统,显示中文乱码
摘要: Linux系统,中文显示乱码 XShell是一个强大的安全终端模拟软件,它支持SSH1, SSH2及 Microsoft Windows平台的Telnet NetSarang Xshell 4 ...
- SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题
一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_ ...
- XShell连接CentOS 7.2显示中文乱码问题的解决方法
背景 使用U盘往Windows主机.Linux主机传文件还是经常的事,但有时候文件名有中文, 传到Linux机器会有乱码,选择起来也很麻烦,最近刚好遇到,写下解决方法. 环境 Linux [root@ ...
随机推荐
- 关于Unity中场景的导入与导出(专题九)
Unity场景 场景虽然是由场景美术做好的,但是我们经常需要自己去导导出以及从别的项目导入,所以我们需要对场景的导入和导出有一个详细的了解 1: 场景是由美术人员搭建完成后提交给程序;2: 场景一般包 ...
- 关于Unity中粒子效果的使用
粒子效果1: 游戏中会有很炫酷的特效,比如爆炸,水花,火焰等;2: unity提供粒子编辑器,方便特效人员来开发很炫酷的特效;3.粒子效果一般有专门的粒子特效师来做,我们只需要拿来用就好了,很多参数没 ...
- python公司内部语言规范与语言风格
一.python语言规范 1.1导入 Tip: 仅对包和模块使用导入 定义: 模块间共享代码的重用机制. 优点: 命名空间管理约定十分简单.每个标识符的源都用一种一致的方式指示.x.obj 表示obj ...
- SAP Actual Costing with Material Ledger 激活实际成本后台配置
Actual Costing with Material Ledger 1 Purpose This configuration guide provides the information ...
- WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
OS:Win7 64bit WAS版本:WASND_7.0_Windows_x64_C1G2JML.zip WAS补丁升级程序版本:7.0.0.13-WS-UPDI-WinAMD64 异常信息: Ca ...
- C# Bitmap/png转成jpg格式,压缩图片
public static ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecIn ...
- 9款极具创意的HTML5/CSS3进度条动画
今天我们要分享9款极具创意的HTML5/CSS3进度条动画,这些进度条也许可以帮你增强用户交互和提高用户体验,喜欢的朋友就收藏了吧. 1.HTML5/CSS3图片加载进度条 可切换多主题 今天要分享的 ...
- KONG基础使用
KONG是一个基于Nginx的API Gateway.提供了诸如身份认证,权限控制,流量控制,日志等一系列API相关的组件,可谓相当方便.KONG项目首页KONG入门KONG的Github地址KONG ...
- 腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言
触发点: http://city.hn.qq.com http://city.hn.qq.com/auto/c=shop&m=bbs&id=668 POST /msgboard/mes ...
- text/html和text/plain的区别
1.text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理. 2.text/plain的意思是 ...