Llinuxu 发表于 2016-4-27 15:03:07

QT下解决QTextEdit的右键菜单是英文的办法

qt5把qt_zh_CN.qm加载了,但QTextEdit的右键菜单仍然是英文,而QLineEdit的倒是中文。怎样设置使得QTextEdit的右键菜单是中文呢,在网上看了很多,大多写得不完全,所以在这里提供综合网上的方法:
/*****************************************************************************************************/
问题的原因在于:QTextEdit中使用的对象QWidgetTextControl中的复制、粘贴等右键菜单选项在qt_zh_CN.qm中没有被翻译
解决方法:打开qt-everywhere-opensource-src-5.2.0\qtbase\src\widgets目录,用Qt Creator打开widgets.pro文件,
添加一行:TRANSLATIONS += widgets.ts
然后在Qt Creator的系统菜单中,选择:工具->外部->Qt语言家->更新翻译,
注意:找不到lupdate.exe不会提示,请看下面概要提示,确保文件存在,成功会显示:
Starting external tool "E:\qt\qt5.5\qtbase\bin\lupdate.exe" E:/qt/qt5.5/qtbase/src/widgets/widgets.pro
Updating 'widgets.ts'...
Found 219 source text(s) (219 new and 0 already existing)
就会在widgets.pro所在目录下生成一个widgets.ts文件
/****************************************************************************************************/
以上用*号包围的内容是网上抄来的,如果你运气好,照着这样一步步执行可能不会出问题,但是如果你运气不好就会最终生不成widgets.ts文件,而且还不会给你报错
其实具体原因一般是你的构建套件选错了,找不到lupdate.exe或者其他情况。这里用一个最笨的方法,那就是用命令控件符啊cmd,找到找到lupdate.exe所在的位置,
然后输入:lupdate -verbose (.pro文件所在路径).pro,就会在widgets.pro所在目录下生成widgets.ts文件了。
有了widgets.ts文件后,用用Qt Linguist(用Qt Linguist是一个软件,并不是QT自带的,需要去网上下载)打开widgets.ts,找到QWidgetTextControl,翻译相关选项,
然后选择:文件->发布,就会在widgets.ts所在目录生产一个widgets.qm文件,再将该文件应用到项目中即可
QTranslator translator;
    translator.load(QString(":/images/images/widgets.qm"));
    a.installTranslator(&translator);
    QTranslator translator2;
    translator2.load(QString(":/images/images/qt_zh_CN.qm"));
    a.installTranslator(&translator2);

ddcour 发表于 2017-12-27 21:18:17

多谢大师分享!

了无 发表于 2017-12-27 22:54:51

明天试试去
页: [1]
查看完整版本: QT下解决QTextEdit的右键菜单是英文的办法