zoukankan      html  css  js  c++  java
  • 12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示

    1.解决Win平台中文显示

    1.1首先解决win平台上中文显示乱码问题

    1)首先查看qt creator的编码格式

    通过->编辑->选择编码 查看.

    2)如果qt creator的编码格式是utf8,并且项目里的汉字是utf8类型时

    需要添加头文件:

    #include <QTextCodec>

    在main()函数加入:

      QTextCodec *codec = QTextCodec::codecForName("utf8"); 
    
      QTextCodec::setCodecForTr(codec);
    
      QTextCodec::setCodecForLocale(codec);
    
      QTextCodec::setCodecForCStrings(codec);

    3)如果qt creator的编码格式是GBK,并且项目里的汉字是GBK类型时

    添加头文件:

    #include <QTextCodec>

    在main()函数加入:

      QTextCodec *codec = QTextCodec::codecForName("GBK"); //GBK gbk
    
      QTextCodec::setCodecForTr(codec);
    
      QTextCodec::setCodecForLocale(codec);
    
      QTextCodec::setCodecForCStrings(codec);

    1.2 其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题

    如下图所示:

     

    步骤:

    1)搜索qt_zh_CN.ts ,找到位于: C:Qt4.7.4 ranslationsqt_zh_CN.ts

    2)在开始程序里打开qt预言家(linguist.exe)

     

    3)通过linguist.exe打开找到的qt_zh_CN.ts文件,进行翻译

    如下图所示,发现都是大多翻译好了的:

     

    上面表示该文件的tr("")字符串已被翻译完

    接下来点击File->Release 生成翻译文件: qt_zh_CN.qm

    4)再将qt_zh_CN.qm放到自己项目的资源文件里

    5)在main函数里添加以下代码

    //注意:必须要放在QApplication a(argc, argv);后面处,因为下面代码要初始化这个对象
    QTranslator *trans = new QTranslator;
    trans->load(":/res/qm/qt_zh_CN.qm"); 
    QCoreApplication::installTranslator(trans);

    6)测试效果

     

     

    2.解决Linux平台中文显示

    2.1解决乱码,无法打印中文

     有可能是qt配置界面的字体不支持中文

    1)输入命令qtconfig

    2)进入Qt配置界面,如下图所示,如果发现乱码,那就说明qt配置字体错了:

    3)点击第2格,然后选择字体,只要能显示中文出来,便可以:

     

     

    4.设置好后,退出并保存,然后运行自己写的记事本程序效果:

     

     

    5)发现使用QPlainTextEdit编辑组件无法打出汉字

    找到是输入法没有全局设置,输入命令ibus-setup,然后勾上全局设置:

     

    PS:Linux下的中文输入法默认输入是UTF-8,所以需要保证qt creator编码格式也是UTF-8,否则输入中文会乱码

     

    2.2其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题

    1)输入sudo find /  -name  qt_zh_CN*

     

    从上图可以看到,qt已经为我们做好了qt_zh_CN.qm,然后将这个拷贝出来,加入到资源里

    2)和Win平台一样,通过代码调用qt_zh_CN.qm

    3)试验效果,发现按钮, QLineEdit右击菜单还是显示英文

    4)使用qt预言家(linguist)从新发布试试

    输入linguist,打开找到的qt_zh_CN.qm:

     

    发现都是翻译好了的,那再次从新发布试试.

     

    5)从新发布后,再次调用新发布的qt_zh_CN.qm,试验效果

    发现ok了,如下图所示:

     

     如果需要项目文件在Win/Linux上都要运行

    设置Qt Creator:

    进入编辑->选择编码  ,选择UTF-8类型

    进入工具->选项->文本编辑器->行为,选择UTF-8编码

    在代码里只需要调用:

    char s[]="utf-8";
    QTextCodec::setCodecForTr(QTextCodec::codecForName(s));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName(s));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(s));

    就不再需要考虑,项目文件转编码问题了.

    
    
    
  • 相关阅读:
    看K线学炒股(8.10)
    看K线学炒股(8.9)
    看K线学炒股(8.5)
    看K线学炒股(0803)
    看K线学炒股(7.29)
    看K线学炒股(7.21)
    看K线学炒股(2021.07.20)
    看K线学炒股
    说说英力特这只股票
    matlab里的数据转换到Python中去的一个问题
  • 原文地址:https://www.cnblogs.com/lifexy/p/8967914.html
Copyright © 2011-2022 走看看