Qt 语言家的使用(二)Qt 语言家的使用(二).pdf
文本预览下载声明
Qt 语言家的使用(二)
一个简单的用Qt 语言家(Qt Linguist )翻译应用程序的例子,在上一次已经给大家介绍了。这次
我们要做一个稍微复杂点的应用程序,并看看Qt 语言家是怎样完成程序翻译工作的。由于我也是最近才
发现的,所以如有错误,请指出,我会尽快更改的
首先同样的,建立一个空的Qt 应用程序,并且命名为“[指导]Qt 语言家的使用”。目标为桌面应用程
序,建立好的截图如下所示:
新建一个main.cpp 文件,并且输入如下的代码:
// main.cpp 主函数所在的位置
// 20:27:24 最后编辑
#include QApplication
#include QtGui
#include QTranslator
int main( int argc char** argv )
{
QApplication app( argc argv );
QTranslator translator;
translator.load( zh_CN );
app.installTranslator( translator );
// 绘制界面
QLabel* label = new QLabel( QLabel::tr( Input value ) );
QSpinBox* spinBox = new QSpinBox;
QPushButton* button = new QPushButton( QPushButton::tr( OK ) );
QDial* dial = new QDial;
QWidget* window = new QWidget;
spinBox-setRange( 0 65535 );
dial-setRange( 0 65535 );
QGridLayout* layout = new QGridLayout;
layout-addWidget( label 0 0 );
layout-addWidget( spinBox 0 1 );
layout-addWidget( button 1 0 );
layout-addWidget( dial 1 1 );
window-setWindowTitle( QWidget::tr( -- Set Value -- ) );
window-setLayout( layout );
window-show( );
// 连接信号和槽
QObject::connect( button SIGNAL( pressed( ) )
qApp SLOT( quit( ) ) );
QObject::connect( dial SIGNAL( valueChanged( int ) )
spinBox SLOT( setValue( int ) ) );
QObject::connect( spinBox SIGNAL( valueChanged( int ) )
dial SLOT( setValue( int ) ) );
return app.exec( );
}
我们先运行一下,运行结果是这样的:
让我们来看一下一些关键代码 QTranslator translator;表明建立一个QTranslator 对象,
translator.load( zh_CN );表明载入一个语言脚本,app.installTranslator( translator );的意思是
应用程序载入该translator 对象。它是Qt 语言家重要的组成部分
为了正确地载入zh_CN 这个翻译文件,我们必须在.pro 文件后面添加一句:TRANSLATIONS +=
zh_CN.ts。随后点击菜单上的”工具-外部-Qt 语言家-更新翻译(lupdate )” ,让Qt 语言家自动产
生.ts 文件。产生了翻译文件后,我们点击Ctrl+O 打开它,看看它的内容是不是这个样子:
?xml version=1.0 encoding=utf-8?
!DOCTYPE TS
TS version=2.0
context
nam
显示全部