文档详情

Qt 语言家的使用(二)Qt 语言家的使用(二).pdf

发布:2018-04-21约8.03千字共6页下载文档
文本预览下载声明
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
显示全部
相似文档