当前位置: 首页 > news >正文

滁州市建设工程质量检测协会网站怎样在网上注册自己的公司

滁州市建设工程质量检测协会网站,怎样在网上注册自己的公司,湛江有帮公司做网站,wordpress加密某一页面Qt5开发及实例V2.0-第十四章-Qt多国语言国际化 第14章 Qt 5多国语言国际化14.1 基本概念14.1.1 国际化支持的实现14.1.2 翻译工作#xff1a;“*.qm”文件的生成 14.2 【实例】14.2.1 简单测试14.2.2 选择语言翻译文字 本章相关例程源码下载1.Qt5开发及实例_CH1401.rar 下载2.… Qt5开发及实例V2.0-第十四章-Qt多国语言国际化 第14章 Qt 5多国语言国际化14.1 基本概念14.1.1 国际化支持的实现14.1.2 翻译工作“*.qm”文件的生成 14.2 【实例】14.2.1 简单测试14.2.2 选择语言翻译文字 本章相关例程源码下载1.Qt5开发及实例_CH1401.rar 下载2.Qt5开发及实例_CH1402.rar 下载 第14章 Qt 5多国语言国际化 14.1 基本概念 14.1.1 国际化支持的实现 1使用QString对象表示所有用户可见的文本。由于QString内部使用Unicode编码实现所以它可以用于表示所有需要向用户呈现的文本。当然对于仅程序员可见的文本并不需要都变为QString对象可利用Qt提供的QCString或原始的“char *”。 2使用tr()函数获取所有需要翻译的文本。在Qt的翻译机制下QObject::tr()函数可以帮程序员取得翻译之后的文本。对于从QObject继承而来的类QObject::tr()函数最终由QMetaObject::tr()实现。在某些时候如果无法使用QObject::tr()函数则还可以直接调用QCoreApplication::translate()取得翻译之后的字符串。 3使用QString::arg()组织动态文本。有些时候一段文本需要由一些静态文本和动态变量组合起来如常见的情况“printf(“The value of i is: %d”, i)”。对于这种动态文本的翻译由于语言习惯的问题如果简单地采用这种连接字符串的方法则可能会带来一些问题如下面的字符串用于表示任务的完成情况 QString m tr(Mission status: ) x tr(of ) y tr(“are completed”); 4利用QTranslator::load()和QCoreApplication::installTranslator()读取对应的翻译之后的资源文件。翻译工作者将提供包含有翻译之后的字符串的资源文件“*.qm”程序员还需要做的是定义QTranslator对象并使用load()函数读取相应的“.qm”文件利用QCoreApplication::installTranslator()函数安装QTranslator对象。 14.1.2 翻译工作“*.qm”文件的生成 1利用lupdate工具从源代码中扫描并提取需要翻译的字符串生成“.ts”文件。类似编译时用到的qmake运行lupdate时也需要指定一个“.pro”的文件这个“.pro”文件可以单独创建也可以利用编译时用到的“.pro”文件只需定义好变量TRANSLATIONS即可具体用法可以参见本书后面的小例子。 2利用linguist工具来协助完成翻译工作即打开前面用lupdate生成的“.ts”文件对其中的字符串逐条进行翻译并保存。由于“.ts”文件采用了XML格式所以也可以使用其他编辑器来打开“.ts”文件并翻译。 3利用lrelease工具处理翻译好的“.ts”文件生成格式更为紧凑的“.qm”文件。这便是翻译工作者最终需要提供的资源文件它所占的空间比“.ts”文件小但基本不具有可读性只有QTranslator能够正确地识别它。 14.2 【实例】 14.2.1 简单测试 【例】简单CH1401多国语言国际化。 操作步骤如下。 1新建一个GUI工程“TestHello.pro”在UI界面上添加两个按钮并分别将文本修改为hello、china如图14.1所示。 2修改“TestHello.pro”文件添加如下代码 TRANSLATIONS TestHello.ts 3编译。记住一定要先编译假如没有编译就进行下面的步骤生成的“.ts”文件只是一个仅有标题栏的框架。 4编译完成后选择“开始”→“所有程序”→“Qt 5.8.0”→“5.8”→“MinGW 5.3.0 (32-bit)”→“Qt 5.8 for Desktop (MinGW 5.3.0 32 bit)”菜单项打开命令行窗口进入“TestHello.pro”工程目录执行命令 lupdate TestHello.pro 在工程下生成一个“.ts”文件假如没有编译将提示“Found 1 source text”。若已经编译就将提示“Found 3 source text(s)”如图14.2所示。 5选择“开始”→“所有程序”→“Qt 5.8.0”→“5.8”→“MinGW 5.3.0 (32-bit)”→“Linguist”菜单项运行Qt自带工具LinguistQt 语言家其主界面如图14.3。 在主界面上选择“文件”→“打开”命令选择“TestHello.ts”文件单击“打开”按钮根据需要设置源语言和目标语言此处为默认状态源语言为任意国家语言目标语言为China的Chinese如图14.4所示。 6在第二栏中选择要翻译的字符串在下面两行中输入对应的翻译文字单击上面的 按钮如图14.5所示。 7选择“文件”→“发布”菜单项或者在命令行中输入“lrelease TestHello.pro”生成“TestHello.qm”文件如图14.6所示。 8修改源代码其中加黑语句为需要添加的部分。 具体代码如下 #includeQTranslator int main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator *translator new QTranslator;translator-load(D:/Qt/CH14/CH1401/TestHello/TestHello.qm);a.installTranslator(translator);MainWindow w;w.show();return a.exec(); }9运行程序效果如图14.7所示。 14.2.2 选择语言翻译文字 【例】简单CH1402用一个下拉菜单来选择语言并且下面有一个需要翻译文字的标签。 实现步骤如下。 1在头文件“LangSwitch.h”中定义类LangSwitch创建用户界面。 #include QWidget #include QComboBox #include QLabel class LangSwitch : public QWidget {Q_OBJECT public:LangSwitch(QWidget *parent 0);~LangSwitch(); private slots:void changeLang(int index); //(a) private:void createScreen(); //(b)void changeTr(const QString langCode);void refreshLabel();QComboBox* combo; //界面中可以看见的下拉菜单QLabel* label; //界面中可以看见的标签 };2源文件“LangSwitch.cpp”中的具体实现代码如下 #include langswitch.h #include QVBoxLayout #include QTranslator #include QApplication LangSwitch::LangSwitch(QWidget *parent): QWidget(parent) {createScreen(); } LangSwitch::~LangSwitch() { }createScreen()函数用于创建基本的界面其具体实现代码如下 void LangSwitch::createScreen() {combo new QComboBox;combo-addItem(English, en); //(a)combo-addItem(Chinese, zh);combo-addItem(Latin, la);label new QLabel;refreshLabel(); //设置标签的内容QVBoxLayout* layout new QVBoxLayout;layout-addWidget(combo, 1);layout-addWidget(label, 5);setLayout(layout);connect(combo, SIGNAL(currentIndexChanged(int)),this, SLOT(changeLang(int))); //(b) }refreshLabel()函数的具体实现如下 void LangSwitch::refreshLabel() {label-setText(tr(TXT_HELLO_WORLD, Hello World)); //(a) }changeLang()函数改变语言的具体代码如下 void LangSwitch::changeLang(int index) {QString langCode combo-itemData(index).toString(); //(a)changeTr(langCode); //读取相应的“.qm”文件refreshLabel(); //刷新标签上的文字 }函数changeTr()读取对应的“.qm”文件并调用installTranslator()方法安装QTranslator对象其具体实现代码如下 void LangSwitch::changeTr(const QString langCode) {static QTranslator* translator; //(a)if(translator ! NULL){qApp-removeTranslator(translator);delete translator;translator NULL;}translator new QTranslator;QString qmFilename lang_ langCode; //(b)if(translator-load(QString(D:/Qt/CH14/CH1402/LangSwitch/)qmFilename)){qApp-installTranslator(translator);} }3提取需要翻译的字符串并翻译生成“.qm”文件这个工作通常由专门的工作组负责具体操作如下。 ① 修改“langswitch.pro”文件即在后面加上TRANSLATIONS的定义加黑部分代码。修改完的“langswitch.pro”文件的具体内容如下 TARGET LangSwitch TEMPLATE app SOURCES main.cpp\langswitch.cpp HEADERS langswitch.h TRANSLATIONS lang_en.ts \lang_zh.ts \lang_la.ts此时运行结果如图14.8所示。 ② 利用lupdate工具提取需要翻译的字符串运行命令及结果如图14.9所示。 a利用Linguist翻译这几个“.ts”文件。直接利用Qt的Linguist工具打开需要翻译的“.ts”文件就可以进行字符串的翻译这里三个版本的字符串分别译为“Hello World”English、“你好世界”Chinese和“Orbis, te saluto”Latin翻译完成后保存退出如图14.10所示。 b生成各个“.ts”文件相应的“.qm”文件。这个工作可以利用lrelease来完成其用法与lupdate工具相同只是改用命令“lrelease LangSwitch.pro”命令的运行情况如图14.11所示。 上述所有准备工作完成后便可运行程序效果如图14.12所示。 本章相关例程源码下载 1.Qt5开发及实例_CH1401.rar 下载 Qt5开发及实例_CH1401.rar 2.Qt5开发及实例_CH1402.rar 下载 Qt5开发及实例_CH1402.rar
http://www.dnsts.com.cn/news/271973.html

相关文章:

  • saas 做网站wordpress 栏目标题
  • 海兴县建设工程招标信息网站seo问答
  • 清河网站建设多少钱网站建设多少钱杭州
  • mui做的h5网站案例校园网子网站建设管理意见或策划
  • 开发一个网站需要多长时间以网站和什么为重点建设平台
  • 腾讯 网站建设北京商场招商信息
  • html5可以做手机网站吗网站建设如何
  • 连衣裙一起做网站返利网 网站建设费用
  • 购买建立网站费怎么做会计凭证新乡seo网站推广工具
  • 淳安网站建设高端网站建设与发展
  • 襄樊网站网站建设微信020网站怎么建立
  • 山西科技网站建设邯郸今天最新通告
  • 可信网站注册南京设计网页公司
  • 网站要实名认证网站入口百度
  • 网站建设公司的业务范围新网站做外链
  • 网站建设陕icp网络运营者义务
  • 静态网页制作方法门户网站如何做seo
  • 华为云云速建站教程英文网站建设目的
  • 装修网站怎么做外贸选品网站
  • 北京网站建设公司飞沐python做网站用什么软件
  • 让搜索引擎收录网站wordpress管理地址在哪里
  • 商超网站宁波做网站优化的公司
  • 临沂住房和城乡建设局网站wordpress添加404页面模板
  • 一般网站 广告网站点击率
  • 网站开发工程师需要会写什么区别百度统计登录
  • 国外化工网站模板做网站属于程序员吗
  • 网站建设需要会什么软件有哪些基层组织建设部网站
  • 自己建一个网站东莞常平天气预报
  • 前端网站默认登录怎么做培训班网站建设
  • 嘉兴做网站优化多少钱用了wordpress的网站