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

news2024/11/16 18:25:55

文章目录

  • 第一步:新建一个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_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    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.coloradmin.cn/o/1656334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

韶关市承装修试电力施工许可证五级可以承接哪些项目【资质办理指南】

韶关市承装修试电力施工许可证五级可以承接哪些项目【资质办理指南】 韶关市承装修试电力施工许可证五级可以承接的项目主要包括10千伏及以下电压等级电力设施的安装、维修或者试验活动。这意味着&#xff0c;持有五级许可证的企业可以在韶关市范围内承接包括变电站、配电站、输…

多链路聚合设备是什么

多链路聚合设备属于通信指挥装备。 乾元通多链路聚合设备&#xff0c;它能够将多个网络链路聚合成一个逻辑链路&#xff0c;以实现高速、稳定、可靠的数据传输。多链路聚合设备的核心技术包括链路聚合、负载均衡、故障切换等&#xff0c;能够智能管理和优化利用不同网络链路&a…

【国产SSL】哪家SSL证书可以保证数据不出境,是在国内验签

随着网络安全的重视&#xff0c;网站安装SSL证书已经是标配了。但是为什么目前常见的SSL证书都是国外的&#xff1f;数据受国外掌控&#xff0c;安全吗&#xff1f;那么哪家国产品牌是可以保证数据不出境的呢&#xff1f; 为什么目前常见的SSL证书都是国外的&#xff1f; 原因…

AlphaFold3(AF3)简单介绍:预测各种生物分子结构和它们之间相互作用的深度学习模型

参考: 文章地址: https://www.nature.com/articles/s41586-024-07487-w https://blog.google/technology/ai/google-deepmind-isomorphic-alphafold-3-ai-model/ AlphaFold3体验官网: https://golgi.sandbox.google.com/ 《Accurate structure prediction of biomolecula…

AI日报|苹果新款iPad Pro搭载AI芯片,DeepSeek-V2开源,百万token仅1元...

欢迎大家在 GitHub 上 Star 我们&#xff1a; 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

跨越智能建筑桥梁:西门子PLC无缝对接BACnet楼宇自动化系统化

智能楼宇每一个环节的互联互通都至关重要&#xff0c;而PLC&#xff08;可编程逻辑控制器&#xff09;作为自动化领域的基石&#xff0c;其与BACnet协议的融合无疑成为了构建智能楼宇神经系统的关键节点。今天&#xff0c;让我们深入探讨如何利用先进的PLC转BACnet协议网关&…

继续SQL

主知识点六&#xff1a;having 聚合前的筛选用where&#xff0c;聚合后的筛选用having Having和where的区别是&#xff1a;运行顺序和对象不用 Having是在group by聚合后的基础上进行筛选。 ● 【例题27*】&#xff08;运行原理&#xff09;查询总人口数至少为3亿的大洲和…

ai可以做思维导图吗?当然是可以的!

ai可以做思维导图吗&#xff1f;在快节奏的现代生活中&#xff0c;思维导图作为一种高效的信息组织和表达工具&#xff0c;越来越受到人们的青睐。随着人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;AI思维导图软件也应运而生&#xff0c;它们不仅能够帮助用户…

MindSponge分子动力学模拟——软件架构

技术背景 在前面一篇文章中&#xff0c;我们介绍了MindSponge的两种不同的安装与使用方法&#xff0c;让大家能够上手使用。这篇文章主要讲解MindSponge的软件架构&#xff0c;并且协同mindscience仓库讲解一下二者的区别。 整体架构 首先我们来了解一下MindSponge独立仓库的…

CPU基本知识点

目录 1.概念 2.分类 3.运作原理 4.指令系统 1.概念 CPU&#xff1a;英文Central Processing Unit&#xff0c;即中央处理器。 解释和执行指令的功能单元&#xff0c;它是计算机的中枢神经系统&#xff08;即核心&#xff09;。 是计算机最核心的部件&#xff0c;主要是运算…

U-Mail邮件系统,自建企业邮箱的优选

随着互联网的发展&#xff0c;企业邮箱已成为企业办公自动化系统的组成部分之一&#xff0c;对于企业而言&#xff0c;拥有一个专属的企业邮箱不仅可以提升企业形象&#xff0c;更可以提高工作效率。目前市场上流行的企业邮箱有租用和自建两种形式&#xff0c;而租用企业则存在…

如何使用ESOP电子作业指导书系统提高工作效率?

在当今工业生产和制造领域&#xff0c;实现作业标准化是提高生产效率、保证产品质量、提升企业竞争力的重要途径。而 ESOP 无纸化指导书系统作为一种创新的技术手段&#xff0c;正逐渐成为实现作业标准化的关键所在。 ESOP 无纸化指导书系统通过数字化的方式&#xff0c;将传统…

二总线,替代传统485总线通讯,主动上报方案简易实现方法

二总线通信设计专栏 《二总线&#xff0c;替代传统485总线通讯&#xff0c;选型及应用-CSDN博客》《二总线&#xff0c;替代传统485总线通讯&#xff0c;低成本直流载波方案实现及原理-CSDN博客》《二总线&#xff0c;替代传统485总线通讯&#xff0c;调试避坑指南之最大的电流…

图片如何压缩到500kb以下?3步完成图片压缩

在日常生活和工作中&#xff0c;经常需要处理各种图片&#xff0c;而有时候图片文件过大&#xff0c;不仅占用了大量的存储空间&#xff0c;还可能影响文件的传输速度和加载速度。因此&#xff0c;如何将图片压缩到500kb以内成为了许多人的需求&#xff0c;普通的图片压缩可能没…

MySQL安装教程(自定义安装)

参考博主https://blog.csdn.net/m0_71422677/article/details/136007088 一、从mysql官网安装 今天分享的是Windows系统下MySQL的安装教程&#xff0c;打开MySQL官网https://www.mysql.com/downloads/ 这里选择第二个 等待下载完成&#xff0c;下载完成后&#xff0c;双击打开…

【3dmax笔记】029:4种顶点类型

一、3dmax顶点类型 在3dmax中,顶点有 4 种类型: Bezier 角点(两条控制杆,可以单独控制)Bezier(两条控制杆,同时发生变化)角点(硬角)平滑(圆滑线段)注:Bezier 角点控制杆不显示,可以转换成角点,再转换成 Bezier 角点 二、顶点案例 1. 角点 在创建图形时,需要…

Ansible-inventory和playbook

文章目录 一、inventory 主机清单1、列表表示2、inventory 中的变量3、变量3.1 主机变量3.2 组变量3.3 组嵌套 二、playbook剧本1、playbook的组成2、编写剧本2.1 剧本制作2.2 准备nginx.conf2.3 运行剧本2.4 查看webservers服务器2.5 补充参数 3、剧本定义、引用变量3.1 剧本制…

roofline model加速模型部署最后一公里

文章目录 模型部署教程来啦:)什么是Roofline Model&#xff1f;算法模型相关指标计算量计算峰值参数量访存量带宽计算密度kernel size对计算密度的影响output size对计算密度的影响channel size对计算密度的影响group convolution对计算密度的影响tensor reshape对计算密度的影…

ZYNQ实验--裸机程序固化

参考资料 正点原子《领航者 ZYNQ 之嵌入式 SDK 开发指南》详细的配置资料中都有介绍&#xff0c;本文只针对个人实验需求进行简要说明 固化流程 调试阶段是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。但在实际应用中需要程序在上电或者复位时让程序自动运…

利用Python简单操作MySQL数据库,轻松实现数据读写

PyMySQL是Python编程语言中的一个第三方模块&#xff0c;它可以让Python程序连接到MySQL数据库并进行数据操作。它的使用非常简单&#xff0c;只需要安装PyMySQL模块&#xff0c;然后按照一定的步骤连接到MySQL数据库即 可。本文将介绍PyMySQL的安装、连接MySQL数据库、创建表、…