tqsheng

go.....
随笔 - 366, 文章 - 18, 评论 - 101, 引用 - 0
数据加载中……

Qt学习笔记

老规矩,先下载一个qt-x11-opensource版本,configure,make,make install一切都照说明来。
默认安装目录:/usr/local/Trolltech/Qt-4.5.0/

编写环境变量设置脚本,以免链到系统的旧Qt库。
qt_pc.env 脚本内容如下:

export QMAKESPEC=linux-g++
export QTDIR=/usr/local/Trolltech/Qt-4.5.0
export PKG_CONFIG_PATH=/usr/local/lib:${QTDIR}/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib:${QTDIR}/lib
export PATH=${QTDIR}/bin:$PATH

第一行指定qmake使用的spec,意思是使用/usr/local/Trolltech/Qt-4.5.0/mkspecs/linux-g++这个目录中的文件指定一些变量。如果是嵌入式平台可以看到里面连用什么编译器都指定了,比如/usr/local/Trolltech/Qt-4.5.0/mkspecs/qws/linux-arm-g++目录。
第二行声明的QT的安装目录。
第三行是为了pkg-config能够找到qt库
第四行是为了运行时能找到qt库
第五行保证运行qmake,rcc等工具时是运行的最新的,而不是系统上的旧版本。

1.建个目录存放工程:
      mkdir qt_study
      cd qt_study
      mkdir src
2.创建工程pro文件:
      vi qt_study.pro
      文件内容如下:
      #模板app,生成独立运行的程序
      TEMPLATE = app
      #生成的可执行文件存放目录
      DESTDIR = bin
      #生成的可执行文件名称
      TARGET = qt_study
      #源文件、临时文件存放目录
      DEPENDPATH += src
      INCLUDEPATH +=
      MOC_DIR = .tmp/moc
      RCC_DIR = .tmp/rcc
      UI_DIR = .tmp/ui
      OBJECTS_DIR = .tmp/obj
      #打开警告、支持大文件
      CONFIG += qt warn_on largefile
      #指定代码中国际化需要翻译的字符串存储文件。可指定多个
      TRANSLATIONS = qt_study_zh_CN.ts
      #资源文件,一些图片,翻译文本等。编译后会与可执行文件集成在一个文件中
      RESOURCES += qt_study.qrc
# 源代码
HEADERS += src/mainwindow.h

SOURCES += src/main.cpp \
           src/mainwindow.cpp

3.创建资源文件
vi qt_study.qrc
文件内容如下:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>./qt_study_zh_CN.qm</file>
</qresource>
</RCC>
这儿只包含了一个翻译文本文件,qm文件是由ts文件生成的,后面会有说明。
4.编写代码:
mkdir src
cd src
编写main.cpp,mainwindow.cpp,mainwindow.h。
main.cpp:
#include "mainwindow.h"

void installTranslator()
{
        //获取系统的local name。
        //在我的系统上执行locale,得到的是"zh_CN.UTF-8"。这儿name()会得到zh_CN
        QString locale = QLocale::system().name();

        //新创建一个QTranslator对象,不能是栈对象。
        QTranslator* translator = new QTranslator;
        //从内置资源中load语言包。:/表示是内置资源;qt_study_zh_CN.qm会被load
        translator->load( QString(":/qt_study_" + locale) );
        //安装语言包。程序启动后的界面就是zh_CN的了。
        qApp->installTranslator(translator);
}

int main( int argc, char** argv )
{
        //初始化资源。就是qt_study.qrc文件去掉扩展名
        Q_INIT_RESOURCE( qt_study );

        QApplication app( argc, argv );
        //安装translator
        installTranslator();
        //创建主界面
        qtStudyMainWindow w;
        w.show();

        return app.exec();
}
mainwindow.h 及 mainwindow.cpp见附件
5.翻译文本:
生成ts文件:
lupdate -pro qt_study.pro
翻译文本
linguist qt_study_zh_CN.ts
生成qm文件
lrelease qt_study_zh_CN.ts
6.编译:
qmake
make
7.执行:
如果系统内没有中文字体,需要把ttf字体复制到/usr/local/Trolltech/Qt-4.5.0/lib/fonts/
./bin/qt_study
可以看到正常翻译结果出现。


posted on 2012-12-07 22:41 tqsheng 阅读(307) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理