QT功能 实现静态内容国际化实验

文章目录

  • 第一步:新建一个QT工程
  • 第二步:添加控件
  • 第三步:在pro文件中添加内容
  • 第四步:更新文件
  • 第五步:打开QT的Linguist
  • 第六步:添加翻译内容
  • 第七步:回到QT Creator中添加文件
  • 第八步:给头文件增添代码
  • 第九步:给源文件添加代码
  • 关于异常问题

第一步:新建一个QT工程

  这步省略。

第二步:添加控件

  在UI设计师界面放置一个label(标签)和一个comboBox(下拉框),且双击下拉框,添加两个选项。
在这里插入图片描述
在这里插入图片描述

注意!要把【可翻译的】属性给勾选上:

在这里插入图片描述

第三步:在pro文件中添加内容

TRANSLATIONS = chinese.ts english.ts

在这里插入图片描述

第四步:更新文件

在这里插入图片描述

第五步:打开QT的Linguist

在这里插入图片描述

  打开刚刚更新生成的ts文件:
在这里插入图片描述

  出现此窗口,保持默认即可。

在这里插入图片描述

但这个需要修改一下:
在这里插入图片描述

第六步:添加翻译内容

在这里插入图片描述
在这里插入图片描述

  只需要翻译两个,其他的可以不管。

第七步:回到QT Creator中添加文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第八步:给头文件增添代码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QTranslator>
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;private slots:void on_comboBox_activated(const QString &arg1);//combox槽函数声明void changeEvent(QEvent *e);//changeEvent槽函数声明private:QTranslator tran;//翻译器
};
#endif // MAINWINDOW_H

在这里插入图片描述

第九步:给源文件添加代码

  为了复制粘贴,这里只放最关键的两个槽函数代码:

// 当comboBox的当前选中项改变时,此函数被调用
void MainWindow::on_comboBox_activated(const QString &arg1)
{if(ui->comboBox->currentIndex() == 0){qDebug()<<"中文显示";tran.load(":/chinese"); // 加载中文翻译文件}else if(ui->comboBox->currentIndex() == 1){qDebug()<<"英文显示";tran.load(":/english"); // 加载英文翻译文件}else{qDebug()<<"其他显示";}// 将translator安装到应用程序中,使其生效qApp->installTranslator(&tran);
}// 调用installTranslator后,系统会给窗体发送信号将产生了changeEvent槽产生event
void MainWindow::changeEvent(QEvent *e)
{QWidget::changeEvent(e);// 调用基类的changeEvent处理默认事件switch (e->type()) {// 如果事件类型是语言改变,重新翻译UI,以更新界面上的文本case QEvent::LanguageChange:ui->retranslateUi(this);break;default:break;}
}

在这里插入图片描述

关于异常问题

  在“第四步 更新文件”的时候可能会无法更新控件中的文本出来,这时候关闭软件,重新打开后构建一下(快捷键为Ctrl+B),或许会解决问题,实在不行构建之后再重新打开QT Creator,多试一下总可以的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

因表别名引用错误导致查询SQL执行时间长未出结果

问题描述&#xff1a; 项目组人员反馈在执行一条提取数据SQL时执行很慢&#xff0c;每次执行一段时间就报超时&#xff0c;要求帮忙提取下。 解决过程&#xff1a; 项目组人员发来SQL后&#xff0c;看了下SQL&#xff0c;没什么问题&#xff0c;就在客户端上执行了下&#xff0…

Python专题:三、数字和运算(2)

目录 一、数学运算 二、赋值运算 一、数学运算 1、运算符号 加法 减法- 乘法* 除法/ 计算机中浮点数表示有精度限制&#xff0c;Python有限&#xff0c;所以近似取数 2、除法取整// Python2中 整数/整数 值为整数 Python3中 整数/整数 整数or浮点数 //计算除法对结果取…

css backdrop-filter 实现背景滤镜

官方给出的定义是&#xff1a;backdrop-filter属性允许您将图形效果&#xff08;如模糊或颜色偏移&#xff09;应用于元素后面的区域。因为它适用于元素后面的所有内容&#xff0c;所以要查看元素或其背景的效果&#xff0c;需要透明或部分透明。 大致分为以下10种&#xff1a…

【网络编程】Tomcat | 目录结构 | HTTP服务器

文章目录 Tomcat一、Tomcat的目录结构 Tomcat Tomcat是一个HTTP服务器 使用HTTP进行通信&#xff0c;涉及到HTTP客户端&#xff08;浏览器、Postman、爬虫等待&#xff09;和HTTP服务器。 根据现成的HTTP服务器进行二次开发。 已经将怎么处理HTTP请求、如何构造HTTP响应都封…

网络工程师必备:静态路由实验指南

大家好&#xff0c;这里是G-LAB IT实验室。今天带大家学习一下华为静态路由实验配置 01、实验拓扑 02、实验需求 1.R1环回口11,1,1.1模拟PC1 2.R2建立2个环回口模拟Server server-1: 22,1,1.1 server-2: 44.1.1.1 3.要求使用静态路由实现全网互通 PC1去往server-1从R3走…

【Java EE】网络原理——UDP

目录 1.应用层 2.传输层 2.1端口号 2.1.1端口号的范围划分 2.1.2一个端口号可以被多个进程绑定吗&#xff1f; 2.1.3一个进程可以绑定多个端口号吗&#xff1f; 3.UDP协议 3.1UDP的格式 3.1.1 UDP的源端口号 3.1.2 UDP的目的端口号 3.1.3 UDP长度 3.1.4UDP校验和 3…

故障——蓝桥杯十三届2022国赛大学B组真题

问题分析 这道题纯数学&#xff0c;考察贝叶斯公式 AC_Code #include <bits/stdc.h> using namespace std; typedef pair<int,double> PI; bool cmp(PI a,PI b){if(a.second!b.second)return a.second>b.second;return a.first<b.first; } int main() {i…

上班不想用脑子写代码了怎么办?那就试试Baidu Comate啊宝贝

本文目录 前言1、视频编程实战1.1、熟悉代码库中的代码1.2、参考现有代码编写新代码 2、下载使用教程3、使用体验3.1、AutoWork 产品测评3.2、解决有关ajax请求后重定向问题3.3、询问编程相关知识3.3.1、cookie和session的区别与联系3.3.2、数据库中主键外键的相关知识 4、问题…

《大疆二次开发》EMQX和MQTT部署

EMQX 服务器 基础知识 概念 EMQX (Erlang/Enterprise/Elastic MQTT Broker) &#xff1b;EMQ/EMQX就是MQTT Broker的一种实现&#xff1b;一款开源的大规模分布式 MQTT 消息服务器&#xff0c;功能丰富&#xff0c;专为物联网和实时通信应用而设计&#xff1b;支持多种协议&…

医院预约挂号|基于Springboot+vue的医院预约挂号系统小程序的设计与实现(源码+数据库+文档)

医院预约挂号系统小程序 目录 基于Springboot&#xff0b;vue的医院预约挂号系统小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1小程序端 后台功能模块 4.2.1管理员功能 4.2.2医生功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…

linux 性能监控命令之dstat

1. dstat 系统默认为安装&#xff0c;直接安装阿里源后&#xff0c;yum install -y dstat安装即可&#xff0c;该命令整合了 vmstat &#xff0c; iostat 和 ifstat&#xff0c;我们先看下效果&#xff1a; 我们先看看具体参数&#xff1a; [rootk8s-master ~]# dstat --help …

关于勒索攻击,绝大多数企业存在的三个认知误区

网络空间&#xff0c;有一个挥之不去的“幽灵”&#xff0c;它的名字就叫勒索攻击。 近年来&#xff0c;企业遭受勒索攻击的事件被频频曝光。就在不久前&#xff0c;国家安全部曝光了一起境外黑客组织对我国某高新科技企业实施勒索攻击的案例&#xff0c;该企业的相关信息化系统…