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_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,多试一下总可以的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Colibri for Mac v2.2.0激活版:专业级无损音乐播放器

Colibri for Mac是一款专为Mac用户设计的高分辨率无损音乐播放器。它基于BASS技术构建&#xff0c;为用户带来极致的音频体验。Colibri支持所有流行的无损和有损音频格式&#xff0c;如FLAC、MP3、AAC等&#xff0c;确保音乐播放的清晰度和完美度。其独特的清晰比特完美播放技术…

月均互动超50万!“仪式感”何以盛行?小红书数据分析揭示消费动力

现代年轻人&#xff1a;“赚不到钱&#xff0c;却爱花钱买仪式感”。审慎消费的当下&#xff0c;“仪式感消费”不减反增&#xff0c;小红书平台相关内容更是持续火爆&#xff0c;成为品牌圈粉消费者的关键词。 这届小红书用户&#xff0c;热衷为“仪式感”氪金 “XX的第一杯奶…

【mysql】mysql单表查询、多表查询、分组查询、子查询等案例详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

常用的外贸软件有哪些

常用的外贸软件涵盖了多个方面&#xff0c;包括客户开发、订单管理、库存控制、客户关系管理(CRM)、财务管理以及跨境电商平台等。以下是一些代表性的外贸软件和平台&#xff1a; 客户开发与营销软件: 大镜山谷歌搜索大师易谷歌地图数据采集大师米贸搜 外贸管理软件 (ERP): 神卓…

【Kali Linux工具篇】使用Aircrack-ng破解wifi密码

前期准备 1、一个无线网卡 2、密钥爆破字典 实站过程 1、设置wlan为监听模式 airmon-ng start wlan0 #开启网卡wlan0监听模式 iwconfig #查看网卡状态&#xff0c;发现wlan0mon&#xff0c;表示已开启成功2、探测附近WiFi airdump-ng wlan0monBSSID 代表…

零售全渠道营销业务链分析,让企业管控能力大幅加强!

对于传统的、规模化的零售快消企业来讲&#xff0c;面临着很大的渠道管理和建设问题&#xff0c;如何尽快实现整个营销体系的全渠道数字化转型是当务之急、重中之重。 面对错综分散的经销商&#xff0c;零售快消企业订货流程会越复杂&#xff0c;加之对门店管理较为粗放&#…

技术速递|Java on VS Code 3月更新 - 大量 Spring 新功能!测试覆盖率功能正式发布!​

作者&#xff1a;Nick Zhu 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎来到2024年3月的 Visual Studio Code Java 更新&#xff01;在本篇博客中&#xff0c;我们将分享大量 Spring 有关的新功能以及测试覆盖率的更新&#xff0c;让我们开始吧&#xff01; Spring Boot…

【网络】网络层ICMP协议

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

新建的springBoot WEB项目无法自动返回html模版(gradle+kotlin版本)

最近研究了springBoot创建web项目&#xff0c; 第一步服务端返回字符串没有问题&#xff0c;第二步返回html时&#xff0c;还是返回的字符串。 文章目录 一、参考方案二、新建springBoot web项目三、启动项目的三种方式 一、参考方案 将控制器类的 RestController 改为 Contro…

【JavaWeb】网上蛋糕商城后台-订单管理

概念 前面通过多篇文章以完全实现了用户在网上蛋糕商城平台上的所有功能和操作&#xff0c;从本文开始&#xff0c;实现网站的后台管理功能的介绍和操作。 订单列表 想要进入后台管理系统&#xff0c;则登入的用户一定是管理员账号&#xff0c;这个账号和密码只有管理员才知…

图搜索算法 - 拓扑排序

相关文章&#xff1a; 数据结构–图的概念 图搜索算法 - 深度优先搜索法&#xff08;DFS&#xff09; 图搜索算法 - 广度优先搜索法&#xff08;BFS&#xff09; 拓扑排序 概念 几乎所有的工程都可分为若干个称作活动的子工程&#xff0c;而这些子工程之间&#xff0c;通常受…

多个开源的js补环境框架测试

原文链接&#xff1a;https://mp.weixin.qq.com/s/uEMFGpE5bqmTvzSgX2twvA 前言 在做js逆向时肯定会遇到补环境的情况&#xff0c;看到github开源了好几个补环境用的框架&#xff0c;这篇文章做个测试&#xff0c;看看哪个比较好用。 https://github.com/pysunday/sdenvhttp…

使用Tkinter实现数据预测工具的GUI界面展示

如果构建好预测模型后&#xff0c;想将预测模型通过一个交互式的页面显示&#xff0c;可以通过下边两种方式实现。 本文中代码有详细解析注释&#xff0c;便不再如往期一样分开讲解了&#xff0c;有需要的朋友可以直接拿去使用&#xff0c;代码可以直接运行&#xff0c;把预测…

【计算机网络原理】初始网络原理和一些名词解释​​

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【读点论文】SAM-LIGHTENING: A LIGHTWEIGHT SEGMENT ANYTHING MODEL,改进自注意力机制,然后知识蒸馏提点

SAM-LIGHTENING: A LIGHTWEIGHT SEGMENT ANYTHING MODEL WITH DILATED FLASH ATTENTION TO ACHIEVE 30 ACCELERATION ABSTRACT 分割任意模型&#xff08;SAM&#xff09;由于其零样本泛化能力&#xff0c;在分割任务中引起了广泛的关注。然而&#xff0c;SAM在现实世界实践中…

一个圈圈的机制玩法

什么是一个圈圈&#xff0c;说白了就是一个撸广告的平台&#xff0c;只是引入了减产机制&#xff0c;九维机制和分成机制&#xff0c;再加上有央企背景&#xff0c;做的一个区块链平台。 玩法很简单&#xff0c;就是撸广告获取能量&#xff0c;然后获取绿色能量&#xff0c;等…

网络安全之ACL

ACL&#xff1a;访问控制列表——控制列表&#xff08;策略列表&#xff09;&#xff0c;是一个控制工具。 功能&#xff1a;&#xff01;、定义感兴趣路由&#xff08;控制层面&#xff09;。2、定义感兴趣流量&#xff08;数据层面&#xff09;。 例如&#xff1a; 假设在该…

记一次favicon.ico的折腾

某项目需要将前端和后台整合在一起 我也不知道为啥要整合 上面有要求就整呗 正常前端npm run build打包后 dist内会根据设置自动生成favicon.ico文件在根目录下 但由于前后端整合 需要打包后将图标放在dist下的static文件夹里 需要的效果 打包后 index.html里 <link rel&…

vscode与git下载安装

粉丝不过W git下载地址: https://git-scm.com/downloads, 安装git时, 记住你安装Git的路径 vscode下载地址: https://code.visualstudio.com/ 下载完后, 并默认安装好, 你就可以进入配置git的环境变量了, 点击win, 点击设置 在搜索框里搜索, 高级系统设置 点到 高级 , 然后点击…

智慧公厕:数据驱动的新时代公共厕所管理

公共厕所是城市的重要基础设施&#xff0c;直接关系到人民群众的生活质量和城市形象。然而&#xff0c;长期以来&#xff0c;公共厕所的管理问题一直困扰着城市管理者。为了解决这个难题&#xff0c;智慧公厕应运而生。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#…