• 嵌入式qt显示中文和隐藏鼠标


    最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下


    qt显示中文:

    如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont

    1.首先,需要文泉驿字体文件,你可以从网络上下载得到这些文件,比如,wenquanyi_160_75.qpf。将全部文泉驿字体文件复制到ARM开发板上的Qt字体库中,在这个例子中,Qt字体库的路径是/usr/local/qt463lib/lib/fonts

    2.你还需要增加一个ARM开发板上的环境变量,在/etc/profile文件中增加:

    export QT_QWS_FONTDIR=/usr/local/qt463lib/lib/fonts


    3.在main.cpp中,修改   

        QApplication a(argc, argv);
        QTextCodec *codec = QTextCodec::codecForName("gbk");
        QTextCodec::setCodecForLocale(codec);
        QTextCodec::setCodecForCStrings(codec);
        QTextCodec::setCodecForTr(codec);
        QFont font("wenquanyi",6);
        a.setFont(font);

    4.需要说明的是,QTextCodec *codec = QTextCodec::codecForName("gbk")如果不可行,你可以再试试QTextCodec *codec = QTextCodec::codecForName("UTF-8")

    ps:注意加头文件#include <QTextCodec>



    qt隐藏鼠标图标:


    1.在运行程序的加上参数-nomouse,这样,当前启动的程序就不会出现鼠标光标。


    2.在编译QT库的时候添加编译选项QT_NO_CURSOR,这样cursor相关的代码就不会被编译进去,自然鼠标光标也不会出现在程序中。具体做法是在编译的时候加上-no-feature-CURSOR。据说在编译的时候加-nomouse也可以,但是这样触摸屏也无法点击。


    3.只希望在某个QWidget下不出现鼠标光标,则只要对这个widget调用
      QWidget::setCursor(QCursor(Qt::BlankCursor)),其它的窗口仍将出现鼠标。

    4.在main函数中,实例化了APPLICATION后,调用
      QApplication::setOverrideCursor(Qt::BlankCursor);

    5.任一控件下显示与关闭鼠标
      this->setCursor(Qt::BlankCursor);   //隐藏鼠标
      this->setCursor(Qt::ArrowCursor);  //显示正常鼠标
      this改为需要隐藏鼠标的部件,就可以令当鼠标移动到该部件时候,效果生效。
      以上的都需要动一下鼠标才会消失,不知道不是我没有搞好,下面一启动就可以隐藏起来

    6.调用下面函数:
    QWSServer::setCursorVisible(false);这个方法还有待研究,具体怎么加还不是很明白。


  • 相关阅读:
    Es学习第六课, ES基本搜索_search
    Es学习第一课,了解基本功能和概念
    Es学习第二课, ES安装和客户端使用
    Es学习第四课, 倒排索引
    nginx的location配置详解
    Es学习第三课, ElasticSearch基本的增删改查
    Es学习第五课, 分词器介绍和中文分词器配置
    关于Spring的一点理解
    好久没来,回来了。
    对于ie不支持select的option的onclick事件的处理
  • 原文地址:https://www.cnblogs.com/voidsky/p/5373940.html
Copyright © 2020-2023  润新知