背景:我正在开发一个基于Qt的大型GUI,它可以处理所有用户与触摸屏的交互。该程序的设计使得用户不需要访问命令提示符以执行任何操作,包括重新校准触摸屏。我编写了一个模仿tslib的ts_calibrate
实用程序,它以QWidget
运行,可以在/etc/pointercal
修改tslib的校准文件。
但是,虽然我可以修改校准文件,但在关闭并重新启动程序之前,似乎不会应用校准更改。我编写了一个可以处理重新打开程序的脚本,但我希望找到一种更优雅的方法,以便将用户的麻烦保持在最低限度。
简单地说, Qt的一个类中是否有一个函数可以在不重新启动应用程序的情况下动态重新加载tslib的校准文件?我查看了QWSServer class reference,但我没有找到任何看起来像我想要的东西。
答案 0 :(得分:4)
事实证明,无需重新启动应用程序即可重新加载驱动程序 。为此,您可以使用QWSServer class中的方法关闭并重新打开指针设备,如下所示:
#include <QWSServer>
...
QWSServer::instance()->closeMouse();
QWSServer::instance()->openMouse();
这将导致重新加载tslib的校准文件。例如,如果您使用错误校准启动程序,在程序运行时更正触摸屏的校准文件,然后调用这些方法,指针将调整为新校准。
答案 1 :(得分:2)
tslib与Qt无关。您可以下载tslib的来源并查看测试/ ts_calibrate.c的作用。
答案 2 :(得分:0)
ts_reconfig()
应该做你想做的事。