Qt学习笔记

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
可以看到正常翻译结果出现。


你可能感兴趣的:(Qt学习笔记)