如何使用Qt在屏幕上绘制所有内容?

时间:2013-11-15 11:53:10

标签: qt cross-platform

基本思路是:我想在屏幕上绘制所有内容。

我可以想象的一种方法是创建一个没有窗口控件(最小化,最大化等)或边框的透明全屏窗口。然后画入透明的窗口。我能想到的问题是我无法控制透明窗口后面的窗口。

如果没有上述问题,我怎么能做类似的事呢?如果可能的话,我也希望它可以在多个操作系统上运行。

编辑: 用户不会使用鼠标或其他方式在屏幕上绘图,但可以像往常一样继续使用他的桌面,而不会使我的程序以任何方式干扰(除了屏幕上的绘图)。我的程序只会在屏幕上显示一些用户无法与之交互的内容(至少是计划)。

2 个答案:

答案 0 :(得分:2)

Qt 5实现它:

QWidget w;
w.setWindowFlags(Qt::WindowTransparentForInput);

Qt 4尚未支持此功能 - 请参阅QTBUG-13559。错误报告暗示了需要为Windows做些什么。

答案 1 :(得分:1)

您描述的方法是使用的方法;一个透明的全屏窗口。

如果您使用鼠标左键进行绘制,则需要一种切换模式的机制,以便能够通过窗口选择项目并将事件发送到操作系统。