一、操作系统修改鼠标指针

  1. 打开 /etc/lightdm/lightdm.conf 文件。
sudo nano /etc/lightdm/lightdm.conf
  1. 进入编辑页面,往下找到
xserver-command=X  (在没有修改的情况下,前面应该有加一个#号)
  1. 将这句话修改为
xserver-command=X -bs -core -nocursor (注意将#号去掉),然后保存(保存失败可能是以为你没有使用sudo)。
  1. 重启树莓派,就会发现指针消失了。

二、QT界面修改鼠标指针

问题描述:
近来基于qt crearor开发了一个嵌入式linux程序,部署在一个带有触摸屏的嵌入式平台里,设置了开机自启动后,界面上还有鼠标,影响了美观,希望能够把鼠标去掉。

步骤一

首先查看qt开发环境里,窗口的属性,发现有一项cursor,如下图所示。

android 系统鼠标 隐藏 手机鼠标怎么隐藏指针_开发语言

    点击后边的选项,是鼠标的设置,选择了Blank,在上位机上进行调试,发现界面上鼠标真的没有了。
交叉编译成可执行程序,复制到嵌入式平台里,设置为开机自启动。启动之后,发现鼠标还存在,点击屏幕上的按钮,鼠标就变没了。但是这并没有根本解决问题。

步骤二

    分析上面的问题,之所以点之后鼠标变没了,说明步骤一的设置起作用了,而最开始的鼠标应该是操作系统本身的界面,应用程序自启动后,系统本身的鼠标图像位于应用程序的上一层,当点击界面后,界面就位于最上层了,就把系统的鼠标覆盖了。
    基于这个分析,如果当界面启动后,将界面置于顶层应该就可以把系统的鼠标图像覆盖了。然后在网上查找了将窗口置顶的方法,在窗口的构造函数中加入了下面的代码。

this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint); 
  this->update();

    代码的第一行设置两个标志位,第一个是隐藏窗口的标题栏,这是原来就有的,第二个标志为就是将窗口置顶的设置,第二行代码刷新当前窗口。
    本以为这样可以把问题解决,但是经过测试,问题还是没有解决。

步骤三

经过上面的步骤,将窗口置顶依然不好用。继续对代码进行分析,查看一下main.cpp,如下所示。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

    在主函数中,实例化了一个qt的应用程序a,然后实例化了一个窗体w,然后显示窗体,然后执行应用程序。基于上面的分析,在w.show();这一步,鼠标应该还是存在的,点击界面触发了按钮的槽,使界面置顶,才导致鼠标变没了。
    上面的步骤之所以没有解决,问题根本原因应该是对窗口本身的操作,无法改变窗口与系统界面的关系,也就是说,上面的设置都是在窗口实例化的过程起作用的,窗口显示之后,再进行操作才能将鼠标隐藏。经过查找,在w.show();下一行加入了下面的代码

QApplication::setOverrideCursor(Qt::BlankCursor);

    这一行的作用是在窗口显示之后,让应用程序的鼠标隐藏,经过测试,该方法完美解决了问题。