本帖最后由 zivyW 于 2017-4-13 17:05 编辑
首先感谢 “没事多学点”的这篇文章 QT5.5.1 嵌入式平台 鼠标键盘不能热插拔问题解决 ,链接为http://blog.csdn.net/shengzhadon/article/details/51455361
“没事多学点”作者在文章中对热插拔问题进行了详细讲述,而我就在这里直接上解决代码,如果想具体了解,请进入上面链接
解决步骤:
1.进入你的Qt库的devicediscovery目录,确定目录下面有qdevicediscovery_static_p.h 跟qdevicediscovery_static.cpp两个文件
cd $QtDIR/5.8/Src/qtbase/src/platformsupport/devicediscovery
2.编辑qdevicediscovery_static_p.h,
vim qdevicediscovery_static_p.h
添加头文件:
#include <QFileSystemWatcher> #include <QStringList>
声明监听实例:QFileSystemWatcher *m_fileWatcher; 声明上一次添加设备的列表:QStringList m_devices; 声明信号函数:private slots: void handleHotPlugWatch(const QString &path)
3.编辑qdevicediscovery_static.cpp
vim qdevicediscovery_static.cpp
初始化监听变量与信号监听函数实现
信号监听函数实现
将QStringList devices;改成m_devices.clear();,用以清除上一次的值 将该函数中的devices全部改成m_devices,用以保存新的值。
4.再次make/make install
5.再次将交叉编译出来的qt移植到开发板上
6.运行qt程序测试鼠标键盘热插拔,结果成功
|