当前位置: 首页 > news >正文

QTE安装汉化添加新程序全过程

QTE安装汉化添加新程序全过程
我是一名QT初学者,在学习过程中遇到过很多问 题走过很多的弯路,为了更多像我一样的初学者少走弯路我将把我QT安装…..的全过程表达出来希望对大家有一定的帮助。
我的系统是Red Hat 9.0
要使用的软件包如下:
qt-x11-free-3.3.4.tar.gz
qt-x11-2.3.2.tar.gz
qt-embedded-2.3.10-free.tar.gz
qtopia-free-source-2.1.1.tar.gz
tmake-1.13.tar.gz
e2fsprogs-1.38.tar.gz
jpegsrc.v6b.tar.gz
将 以上的软件包放在/opt/qtopia目录下
然后
#cd /opt/qtopia/
tar zxvf qt-x11-fr*;tar zxvf qt-x11-2*;tar zxvf qt-em*;tar zxvf qtop*;tar zxvf tmake*;tar zxvf e2*;tar zxvf jpeg*
解压这些软件包
然后在/opt/qtopia目录下新建一个 shell文件夹
#make /opt/qtopia/shell
用vi建立初始化环境变量用的sh文件
vi /opt/qtopia/shell/initial.sh
在按i键然后输入以下内容:
export QTEDIR=/opt/qtopia/qt-2.3.10
export QT2DIR=/opt/qtopia/qt-2.3.2
export TMAKEDIR=/opt/qtopia/tmake-1.13
export QPEDIR=/opt/qtopia/qtopia-free-2.1.1
export QT3DIR=/opt/qtopia/qt-x11-free-3.3.4
export DQTDIR=$QT3DIR
export QTDIR=$QT3DIR
export QTDIR=$QTEDIR
export PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin:$QTDIR/bin:$TMAKEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib:$QT3DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
输 入完之后按shift+:键输入wq保存退出在输入
#source /opt/qtopiashell/initial.sh
注册环境变 量
安装 qt-x11-3.3.4:
#cd $QT3DIR
#export TMAKEPATH=$TMAKEDIR/lib/linux-g++
#export QTDIR=$QT3DIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#./configure
输入yes
#make
经 过漫长的编译过程下面我们安装qt-x11-2.3.2
#cd $QT2DIR
#export TMAKEPATH=$TMAKEDIR/lib/linux-g++
#export QTDIR=$QT2DIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#./configure –no-xft
输 入yes
#make
#mkdir $QTEDIR/bin
#cp bin/uic $QTEDIR/bin/
在安装 qvfb
#export TMAKEPATH=$TMAKEDIR/lib/linux-g++
#export QTDIR=$QT2DIR
#export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#cd $QTEDIR/tools/qvfb/
#tmake –o Makefile qvfb.pro
#make
#mv qvfb $QTEDIR/bin/
安装libqte
#cd $QTEDIR
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
#export QTDIR=$QTEDIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#cp –f $QPEDIR/src/qt/qconfig-qpe.h src/tools/
#./configure –system-jpeg –gif –no-xft –qconfig qpe –qvfb –depths 4,8,16,32
输入yes
#make sub-src
之后在安装e2fsprogs-1.38
#cd ../e2fs*/
#./configure –enable-elf-shlibs
#make
#make install lib/uuid/
#cp lib/uuid $QPEDIR/include/ -r
#cp lib/libuuid.a $QPEDIR/lib/
#cp lib/libuuid.so $QPEDIR/lib/
安装jpegsrc
#mkdir /usr/local/man
#mkdir /usr/local/man/man1
#cd ../jpeg*/
#./configure –enable-shared –enable-static
#make
#make install –lib
如果安装成功在/usr/local/lib/会 生成libjpeg.*文件
#cp jpeglib.h $QPEDIR/include/
#cp /usr/local/lib/libjpeg.a $QPEDIR/lib/
#cp /usr/local/lib/libjpeg.so* $QPEDIR/lib/
安装qtopia
#cd $QPEDIR
#export QTDIR=$QPEDIR
#export PATH=$QPEDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
#./configure
#make
#make install
#cd image/opt/Qtopia/
#mkdir demohome
好经过上面的操作,QT环境就已经 建立完了这时我们可以运行一下看看,但是QT自由版里没有提供启动脚本我们写一个
#vi /opt/qtopia/shell/start.sh
输 入以下代码
#!/bin/sh
source /opt/qtopia/shell/initial.sh

export QTDIR=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia
export QPEDIR=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export PATH=$QPEDIR/bin:$PATH

findproc(){
/bin/ps -e | /bin/sed -n -e '/\<'$1'\>/s/^*\([0-9][0-9]*\).*/\1/p'
}

killproc(){
pid=`findproc $1`
["$pid" != ""]&&kill $pid
}

killall quicklauncher
killall qpe
killall qvfb
[-x /sbin/fuser]&&(/sbin/fuser -kn tcp 4242 || /sbin/fuser -kn tcp 4243)
[-x /bin/fuser]&&(/bin/fuser -kn tcp 4242 || /bin/fuser -kn tcp 4243)

echo "Stopping common sound deamons..."
artsd_pid=`findproc artsd`
["$artsd_pid" != ""]&&kill $artsd_pid
esd_pid=`findproc esd`
["$esd_pid" != ""]&&kill $esd_pid

echo "Starting qvfb..."
qvfb -width 240 -height 320 &
sleep 5s

echo "Starting Qtopia 2.1.1 ..."
HOME=/opt/qtopia/qtopia-free-2.1.1/image/opt/Qtopia/demohome qpe

echo "Restarting killed sound deamons..."
["$artsd_pid" != ""]&&artsd &
["$esd_pid" != ""]&& esd &

写 完后我们可以输入以下命令
#source /opt/qtopia/shell/start.sh
如果没有什么错误的话会看到以下界面
图 片1
好有了这个我们就可以开发QT程序了
下面我们把这个界面变成中文的
我们要先运行几个命令:
#source /opt/qtopia/shell/initial.sh
#cd QPEDIR
#./configure –languages “zh_CN”
#make lupdate
#cd bin
#./nct_lupdate
经过上述命令之后 在$QPEDIR/i18n/会生成一个zh_CN文件夹这时用linguist工具翻译这个文件夹下所有的ts文件
#cd $QPEDIR/i18n/zh_CN
#linguist
Linguist是一个图形界面点击File打开一个ts文件在 Translation里输入Source text里面的单词的翻译如下图之后按Ctrl+Enter翻译下一个词
图片2
翻译之后把输 入以下命令
#make lupdate
#make install
之后把$QPEDIR/i18l/zh_CN/下的 QtopiaDefaults.ts修改成如下形式
<!DOCTYPE TS><TS>
<context>
<name>FontMap</name>
<message>
<source>Normal,songti,12</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Large,songti,14</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Small,songti,10</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
然 后输入以下命令生成它的qm文件
#lrelease QtopiaDefaults.ts
把qm文件复制到$QPEDIR/image /opt/Qtopia/i18l/zh_CN/
#mv QtopiaDefaults.ts $QPEDIR/image/opt/Qtopia/i18l/zh_CN/ -f
这样做的目地是让qtopia默认字体为宋体,因为要是先改 QtopiaDefaults.ts,在make install之后有可能会自动把它改成我们没有改之前的样子为了确保安全才这样做,如果不改这个文件也可以只是在启动qtopia之后中文字会乱码要在 Setting里面设置一下字体才行。
经过上面的操作之后我们还要把qtopia的默认语言设置为英文
修改$QPEDIR/image /opt/Qtopia/demohome/Settings/locale.conf 把它改成如下样子
[Language]
Cursor = 0
InputLanguages =zh_CN
Language = zh_CN
Screen = :0
[Location]
Timezone = America/New_York
这时我们要是启动qtopia中文会乱码因为我们还没有把songti设置好
从windows xp 系统里的c:\windows\fonts里面复制一个simsun.ttc文件(这个文件是宋体字字库)把它放在$QPEDIR/image/opt /Qtopia/lib/fonts/
之后要改一下$QPEDIR/image/opt/Qtopia/lib/fonts/fontdir在里 面加一行
songti simsun.ttc FT n 50 0 su 100,120,140,160,180,200,240
这里 面的songti是字体名simsun.ttc是字体文件FT是指ttf字体su后面的数字是字号
经过上面的修改之后我们可以运行qtopia会 看到一个中文的界面
图片3
这样界面的汉化工作就完成了不过这里面自带的程序还是英文的,这些程序的源代码是放在$QPEDIR/src /applications/;$QPEDIR/src/settings/;$QPEDIR/src/games/里面的我们可以把这些目录来进行汉化 举个例子,我们要汉化设置里面的语言那我们可以这样:
#cd $QPEDIR/src/settings/language/
#linguist language-zh_CN.ts
汉化之后
#lrelease language-zh_CN.ts
#mv language-zh_CN.qm ../../../image/opt/Qtopia/i18l/zh_CN/ language.qm -f
这 样运行qtopia就可以看到效果了
图片4
好关于汉化工作我们就全部完成了下成我们来编一个程序把它放在QT的桌面上
先 在$QPEDIR/src/applications/新建一个文件夹
#mkdir $QPEDIR/src/applications/demo
#cd $QPEDIR/src/applications/demo/

我 们先用designer设计器设计一个窗体
#designer
点击File->New选择Widget设置成如下形式
图片 5
然后保存成demo.ui输入以下命令生成代码
#uic –o demo.h demo.ui
#uic –o demo.cpp –impl demo.h demo.ui
然后编辑main.cpp文件为如下形式:
#include "demo.h"
#include <qapplication.h>

#define QT_NO_WIZARD

int main(int argc,char **argv)
{
QApplication app(argc,argv);
demo dlg;
QObject::connect(&dlg,SIGNAL(clicked()),&app,SLOT(quit()));
app.setMainWidget(&dlg);
dlg.show();
return app.exec();
}

然后编辑demo.pro文件为如下形式
CONFIG += qtopiaapp
HEADERS = demo.h
SOURCES = demo.cpp \
main.cpp
TARGET = demo

TRANSLATABLES = $$SOURCES \
$$HEADERS
接下来输入以下命令生成Makefile文件
#tmake –o Makefile demo.pro
在编译
#make
如果tmake 不成功可能是$TMAKEPATH变量没有设置可以用下面的命令设置一下
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
如果编译不成功,可能是环境变量的问题,因为在 initial.sh里面$QPEDIR是/opt/qtopia/qtopia-free-2.1.1而在start.sh里面$QPEDIR/opt /qtopia/qtopia-free-2.1.1/image/opt/Qtopia在这里我说的$QPEDIR是/opt/qtopia /qtopia-free-2.1.1下的
如果编译成功将生成demo这个可执行文件把它放在$QPEDIR/image/opt/Qtopia /bin/
#cp demo $QPEDIR/image/opt/Qtopia/bin/
然后我们在建立一个demo.desktop 文件
#vi $QPEDIR/image/opt/Qtopia/apps/Applications/demo.desktop
输入以 下内容:
[Translation]
File=QtopiaApplications
Context=demo
[Desktop Entry]
Comment[]=A demo Program
Exec=demo
Icon=demo
Type=Application
Name[]=demo
之后制作一个30x30的demo.png图标文件把它放在$QPEDIR/image/opt/Qtopia /pics/
经过上面的部骤启动qtopia就能看到成果了
图片6
注意:如果有些文件更改后不能保存可能这个文件是只读的可以用 chmod +w 文件 设置为可写
到这里这个教程就已经结束了如果哪里有不妥之处还请多指点谢谢了!

描述:图片1
图片:1.jpg
描述:图片2
图片:2.jpg
描述:图片3
图片:3.jpg
描述:图片4
图片:4.jpg
描述:图片5
图片:5.jpg
描述:图片6
图片:6.jpg

相关文章:

  • 努力我可以
  • linux 与 虚拟机共享数据
  • GNU make指南
  • Linux扩展swap分区大小
  • 实现了回写功能---报表工具功能之一
  • 分析两种实现多线程的方式:Thread类和Runnable接口
  • 直接来我的私人博客吧
  • Ado.Net读取Excel常见问题总结
  • 某店铺收银系统开发总结
  • (转)项目管理杂谈-我所期望的新人
  • Flash在DirectX中的绘制
  • 在 SharePoint2010 中使用 XML 查看器取得其他站点的内容列表
  • C实现关机
  • 项目管理实践教程
  • Spring Security学习二
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Mocha测试初探
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python十分钟制作属于你自己的个性logo
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Spring-boot 启动时碰到的错误
  • Terraform入门 - 1. 安装Terraform
  • VUE es6技巧写法(持续更新中~~~)
  • vue自定义指令实现v-tap插件
  • Yeoman_Bower_Grunt
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 工程优化暨babel升级小记
  • 来,膜拜下android roadmap,强大的执行力
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信支付JSAPI,实测!终极方案
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (第27天)Oracle 数据泵转换分区表
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (四)Controller接口控制器详解(三)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET Standard 的管理策略
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @AutoConfigurationPackage的使用
  • [Android 数据通信] android cmwap接入点
  • [android] 天气app布局练习
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [codevs1288] 埃及分数
  • [CSS]盒子模型
  • [git]git命令如何取消先前的配置
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
  • [leetcode] 66. 加一
  • [leetcode]_String to Integer (atoi)
  • [LeetCode]Reverse Linked List II