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

做视频周边的网站淘宝推广费用多少钱一天

做视频周边的网站,淘宝推广费用多少钱一天,在屈臣氏做网站运营,wordpress如何解压在Qt中实现语言动态切换需要以下几个关键步骤,我将提供一个完整的实现方案: 一、准备工作 在代码中使用tr()标记所有需要翻译的字符串 cpp button->setText(tr("Submit")); 创建翻译文件 在.pro文件中添加: qmake TRANSLATION…

在Qt中实现语言动态切换需要以下几个关键步骤,我将提供一个完整的实现方案:

一、准备工作

  1. 在代码中使用tr()标记所有需要翻译的字符串

    cpp

    button->setText(tr("Submit"));
  2. 创建翻译文件

    • 在.pro文件中添加:

      qmake

      TRANSLATIONS = translations/myapp_zh_CN.ts \translations/myapp_en_US.ts

二、核心实现类

1. 语言管理器头文件 (LanguageManager.h)

cpp

#ifndef LANGUAGEMANAGER_H
#define LANGUAGEMANAGER_H#include <QObject>
#include <QTranslator>
#include <QMap>class LanguageManager : public QObject
{Q_OBJECT
public:static LanguageManager* instance();// 可用语言列表QMap<QString, QString> availableLanguages() const;// 设置当前语言void setCurrentLanguage(const QString& languageCode);// 获取当前语言QString currentLanguage() const;signals:// 语言改变信号void languageChanged();protected:explicit LanguageManager(QObject *parent = nullptr);private:void loadTranslations();static LanguageManager* m_instance;QTranslator* m_appTranslator;QTranslator* m_qtTranslator;QString m_currentLanguage;QMap<QString, QString> m_languages; // <code, displayName>
};#endif // LANGUAGEMANAGER_H

2. 语言管理器实现 (LanguageManager.cpp)

cpp

#include "LanguageManager.h"
#include <QApplication>
#include <QDir>
#include <QDebug>
#include <QLibraryInfo>
#include <QSettings>LanguageManager* LanguageManager::m_instance = nullptr;LanguageManager::LanguageManager(QObject *parent) : QObject(parent)
{m_appTranslator = new QTranslator(this);m_qtTranslator = new QTranslator(this);// 初始化可用语言m_languages = {{"en_US", "English"},{"zh_CN", "简体中文"},{"ja_JP", "日本語"}};loadTranslations();
}LanguageManager* LanguageManager::instance()
{if (!m_instance) {m_instance = new LanguageManager(qApp);}return m_instance;
}QMap<QString, QString> LanguageManager::availableLanguages() const
{return m_languages;
}void LanguageManager::setCurrentLanguage(const QString &languageCode)
{if (!m_languages.contains(languageCode) || m_currentLanguage == languageCode) {return;}// 加载应用程序翻译bool loadSuccess = m_appTranslator->load(QString(":/translations/myapp_%1.qm").arg(languageCode));if (loadSuccess) {QApplication::installTranslator(m_appTranslator);// 加载Qt基础库翻译if (m_qtTranslator->load(QString("qt_%1").arg(languageCode), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {QApplication::installTranslator(m_qtTranslator);}m_currentLanguage = languageCode;// 保存到设置QSettings settings;settings.setValue("Language", languageCode);emit languageChanged();} else {qWarning() << "Failed to load translation for" << languageCode;}
}QString LanguageManager::currentLanguage() const
{return m_currentLanguage;
}void LanguageManager::loadTranslations()
{QSettings settings;QString lang = settings.value("Language", QLocale::system().name()).toString();// 如果设置的语言不可用,则使用系统语言或默认英语if (!m_languages.contains(lang)) {lang = m_languages.contains(QLocale::system().name()) ? QLocale::system().name() : "en_US";}setCurrentLanguage(lang);
}

三、使用示例

1. 主窗口实现

cpp

// MainWindow.h
#include <QMainWindow>
#include "LanguageManager.h"namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();protected:void changeEvent(QEvent *e) override;private slots:void onLanguageChanged();void on_actionChinese_triggered();void on_actionEnglish_triggered();private:Ui::MainWindow *ui;void updateUI();
};// MainWindow.cpp
#include "MainWindow.h"
#include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 连接语言改变信号connect(LanguageManager::instance(), &LanguageManager::languageChanged,this, &MainWindow::onLanguageChanged);updateUI();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::changeEvent(QEvent *e)
{QMainWindow::changeEvent(e);if (e->type() == QEvent::LanguageChange) {ui->retranslateUi(this);updateUI();}
}void MainWindow::onLanguageChanged()
{// 语言改变后的处理updateUI();
}void MainWindow::updateUI()
{// 更新非UI文件中的文本setWindowTitle(tr("Multilingual Application"));statusBar()->showMessage(tr("Current language: %1").arg(LanguageManager::instance()->currentLanguage()));
}void MainWindow::on_actionChinese_triggered()
{LanguageManager::instance()->setCurrentLanguage("zh_CN");
}void MainWindow::on_actionEnglish_triggered()
{LanguageManager::instance()->setCurrentLanguage("en_US");
}

2. 主函数初始化

cpp

#include <QApplication>
#include "MainWindow.h"
#include "LanguageManager.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);// 初始化语言管理器LanguageManager::instance()->>setCurrentLanguage("zh_CN");MainWindow w;w.show();return a.exec();
}

四、说明

  1. 翻译文件生成流程

    bash

    lupdate myproject.pro  # 生成.ts文件
    linguist translations/myapp_zh_CN.ts  # 使用Qt Linguist翻译
    lrelease myproject.pro  # 生成.qm文件
  2. 资源文件(.qrc)配置

    xml

    <RCC><qresource prefix="/"><file>translations/myapp_zh_CN.qm</file><file>translations/myapp_en_US.qm</file></qresource>
    </RCC>
  3. 注意事项

    • 所有需要翻译的字符串必须用tr()包裹

    • 语言切换后,需要手动更新动态生成的文本

    • 对于UI文件中的文本,retranslateUi()会自动处理

    • 考虑不同语言文本长度对布局的影响

http://www.dtcms.com/wzjs/392276.html

相关文章:

  • 专做温州鞋批发的网站网络营销平台名词解释
  • 政务网站建设企业策划
  • 个人做网站如何赚钱吗百度知道官网入口
  • 天津百度网站快速优化站长工具在线免费
  • 怎么看网站有没有做301磁力宅在线搜种子
  • 万户网络做网站怎么样网络营销推广的优势
  • 电话营销网站推广网络优化工程师为什么都说坑人
  • 做网站的费用怎么录分录南昌seo搜索排名
  • wordpress 修改文章idseo排名app
  • 福建网站建建设方案软文写作网站
  • 郑州服装网站建设百度网站管理员工具
  • 石家庄网站开发设计网站优化塔山双喜
  • 哪里有配音的网站幽默软文广告经典案例
  • 成品网站建设哪家好优化设计七年级下册语文答案
  • 北滘网站建设什么是长尾关键词举例
  • 武汉市救助管理站 网站建设成都seo的方法
  • 网站 app 公众号先做哪个关键词推广优化app
  • 做地暖工程的网站企业查询app
  • 美女做爰视频免费安全的网站广告免费发布信息
  • 沧州网站建设报价石家庄seo网络优化的公司
  • 网站建设中色无极北京网站seo技术厂家
  • 天津网站建设推广服务实时排名软件
  • 手机网站Com学电商运营的培训机构
  • 自己做的网站本地虚拟上传seo研究
  • wordpress编辑用户中心上海seo关键词优化
  • 合肥网站建设公司哪家好seo搜狗
  • WORDPRESS菜单位置添加搜索框seo实战密码第三版pdf
  • 王野苏婉卿seo专员是什么职位
  • 网站和app软件制作公司品牌宣传策略
  • 摄像头怎么做直播网站百度上海总部