最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下
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改为需要隐藏鼠标的部件,就可以令当鼠标移动到该部件时候,效果生效。
this->setCursor(Qt::ArrowCursor); //显示正常鼠标
this改为需要隐藏鼠标的部件,就可以令当鼠标移动到该部件时候,效果生效。
以上的都需要动一下鼠标才会消失,不知道不是我没有搞好,下面一启动就可以隐藏起来
6.调用下面函数:
QWSServer::setCursorVisible(false);这个方法还有待研究,具体怎么加还不是很明白。