zoukankan      html  css  js  c++  java
  • 嵌入式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);这个方法还有待研究,具体怎么加还不是很明白。


  • 相关阅读:
    phalcon——HTTP 请求
    phalcon——闪存消息
    phalcon——验证
    Java 字符串分隔 split
    Eclipse "R cannot be resolved"问题
    Android CountDownTimer 类实现倒计时
    Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素
    Android Studio 设置/更改 SDK 路径
    Android 开发使用自定义字体
    Android Studio "ADB not responding"
  • 原文地址:https://www.cnblogs.com/voidsky/p/5373940.html
Copyright © 2011-2022 走看看