当前位置: 代码迷 >> QT开发 >> !Qt屏幕绘图
  详细解决方案

!Qt屏幕绘图

热度:86   发布时间:2016-04-25 04:50:29.0
求助!Qt屏幕绘图
最近在学Qt的2D绘图,觉得很强大呀。但是我写的代码都是在具体的窗口部件中进行绘图的,我现在想在电脑屏幕上进行绘图。各位帮忙给个答案吧。谢谢了!

------解决方案--------------------
估计得用win32 api 才能搞定
------解决方案--------------------
想在桌面上绘图,Qt做不到。
------解决方案--------------------
是在屏幕上绘图还是在自己做的界面上绘图?
------解决方案--------------------
Qt不提供任何平台相关的API,只能需求只能依靠系统API,在Qt里调用系统API是可以的。
------解决方案--------------------
QT到底怎么样?
------解决方案--------------------
这个 好像没见过,楼主得到答案后共享一下啊
------解决方案--------------------
探讨

我是想在系统桌面上绘图。难道Qt实现不了吗?MFC是可以实现的。

------解决方案--------------------
探讨

Qt为什么不提供平台无关的屏幕绘图的函数呢?真是想不通了。

------解决方案--------------------
Qt不光没有桌面绘图功能,还没有标题栏绘图的功能,窗口穿透也没有,总之太特殊的都没有。
还不能在任意时间画图,必须在paintEvent里,这个确实不方便。
------解决方案--------------------
QT只提供平台不相关的东西。
在屏幕上画图需要调用系统底层的函数
------解决方案--------------------
取桌面DC再绘图,而取桌面DC只能依靠GDI。
楼主需求是否可以折中,先抓取桌面,再绘图,然后再展示出来,可否?
------解决方案--------------------
如果没有具体的平台相关的这类的类。
那么是否可以试试,做一个透明的窗口,然后再画,不知可否。

我没试过,目前不懂。呵呵。你可以去查查。
------解决方案--------------------
在主窗口添加this->setWindowOpacity(0.01);
试试。
但是他的子窗口也成为透明的了。
------解决方案--------------------
探讨

非常感谢各位的回答。我现在用了你们提议的方法实现了在桌面上绘图的效果。一种方法是this->setWindowOpacity(0.01),但是这种方法有点遗憾,就是当透明度下降时,画笔画出来的线不够清晰,不知道有啥办法可以解决。另外一种办法就是,通过截屏的方式实现的。就是先截取桌面屏幕,把它放到widget中,然后在widget中进行绘图,这种效果还是不错的。
  相关解决方案