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


转载于:https://www.cnblogs.com/voidsky/p/5373940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式Qt和MQTT是两个不同的概念。嵌入式Qt是指在嵌入式系统中使用Qt框架进行应用程序开发的过程。而MQTT是一种轻量级的消息传输协议,用于物联网设备之间进行通信。 在嵌入式Qt中使用MQTT可以通过以下步骤来实现: 1. 首先,需要下载MQTT库的源码。你可以从GitHub上找到一个名为"qmqtt"的库,并选择合适的版本(例如release版本)。 2. 在嵌入式Qt应用程序中,你需要初始化MQTT连接。这可以通过调用相应的函数来完成。 3. 接下来,你需要为接收到的MQTT消息注册一个槽函数。在这个槽函数中,你可以处理接收到的消息,并进行相应的操作。 4. 如果你想直接使用编译好的MQTT包,你可以将这些文件添加到你的项目中。但要注意,官方的MQTT包可能缺少一些可执行文件,所以你可能需要自己处理这些问题。 总之,嵌入式Qt和MQTT是两个不同的概念,但你可以在嵌入式Qt应用程序中使用MQTT来实现设备之间的通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [嵌入式QT- QT使用MQTT](https://blog.csdn.net/Lushengshi/article/details/131607868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [嵌入式QT——MQTT开发](https://blog.csdn.net/JoshRong/article/details/109628571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值