QT Translator多语言load失败

    QLocale locale;
    QTranslator translator;
    if (translator.load(":/translations/translation_en_US.qm")) {
        app.installTranslator(&translator);
        qDebug() << "Can load translation file:"<< QLocale().name();
    }else{
        qDebug() << "Can't load translation file:"<< QLocale().name();
    }

遇到问题:使用相对路径调用失败,但使用绝对路径可以调用成功。放在exe文件同目录仍无效。

解决方法:1.使用QDir类获取当前工作目录的绝对路径,然后将相对地址与当前工作目录的绝对路径拼接起来,作为参数传递给translator.load。

QDir dir = QDir::current();    
QString relativePath = "translations/translation_en_US.qm";    
QString absolutePath = dir.absoluteFilePath(relativePath);    
translator.load(absolutePath);    

2.在应用程序启动时设置当前工作目录为应用程序所在目录,这样相对地址加载时就会相对于应用程序所在目录。

QDir::setCurrent(QCoreApplication::applicationDirPath());    
translator.load("translations/translation_en_US.qm");   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值