老規矩,先下載一個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.0export PKG_CONFIG_PATH=/usr/local/lib:${QTDIR}/lib/pkgconfigexport LD_LIBRARY_PATH=/usr/local/lib:${QTDIR}/libexport 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();