Qt 中控件右击菜单的翻译

Qt 中有很多控件都支持右键点击显示菜单,比如QLineEdit 、 QTextEdit ,QSpinBox 、 QTextBrowser 等控件右击都会显示菜单, 但是默认菜单文字都是英文,当然我们也可以屏蔽菜单, 也可以显示,要是显示中文的话就要加载另外的翻译文件。

对于QLineEdit、QScrollBar 、QSpinBox 等控件需要加载qt_zh_CN.qm翻译文件,这个文件在Qt的安装目录中(C:\Qt\Qt5.5.1\5.5\msvc2013\translations)。

这里是默认情况下未加载翻译文件前

Qt 中控件右击菜单的翻译_第1张图片Qt 中控件右击菜单的翻译_第2张图片Qt 中控件右击菜单的翻译_第3张图片

这里是加载翻译文件后

Qt 中控件右击菜单的翻译_第4张图片Qt 中控件右击菜单的翻译_第5张图片Qt 中控件右击菜单的翻译_第6张图片

对于QTextEdit、QPlainTextEdit 、QTextBrowser 等控件需要加载widgets.qm翻译文件,在Qt的安装目录中找不到此文件,需要自己生成,具体生成方法见下链接,也可以直接下载,下方提供了下载链接。

加载翻译文件前

Qt 中控件右击菜单的翻译_第7张图片Qt 中控件右击菜单的翻译_第8张图片

加载翻译文件后

Qt 中控件右击菜单的翻译_第9张图片Qt 中控件右击菜单的翻译_第10张图片

    //添加翻译;
    QTranslator translatorControl;
    translatorControl.load(":/Resources/TranslateFiles/widgets.qm");
    a.installTranslator(&translatorControl);

生成widgets.qm方法

翻译文件下载

关于在控件中右键点击显示菜单,这里主要是contextMenuPolicy这个属性来控制。如果不想显示菜单可以设置为NoContextMenu,这样就屏蔽了右击显示菜单功能,也可以通过在contextMenuEvent(QContextMenuEvent * e)事件中进行处理。

Qt 中控件右击菜单的翻译_第11张图片

你可能感兴趣的:(Qt)