Qt实现了嵌入桌面的半透明窗口

时间:2019-04-14    来源:365bet娱乐送彩金    作者:365bet平台开户
但是,它还没有结束,单击桌面并单击此窗口,您会注意到该窗口在完全不透明之前变得越来越不透明。
我不知道这是不是qt的错误。
PS:加W
setAttribute(Qt:WA_OpaquePaintEvent,true);该窗口将保持此效果。
换句话说,该程序是可执行的。
Pps:这个程序是XP中的黑色背景块。
3,转到paintEvent()
受保护:voidpaintEvent(QPaintEvent *); voidDialog:paintEvent(QPaintEvent * e){QPainterp(this); p。
fillRect(rect(),QColor(0,0xff,0,30));}
如果使用带有alpha值的颜色填充背景,则可以看到由于效果有效,颜色具有alpha值,但桌面内容不透明。
4,setAttribute(Qt:WA_TranslucentBackground,true)+ paintEvent()
执行效果
获得了预期的效果。
最后一个主要功能代码
Intmain(intargc,char * argv[]){Q application(argc,argv);对话框HWNDdesktopHwnd = findDesktopIconWnd(); if(desktop Hwnd)SetParent(w
winId(),desktopHwnd); w
setAttribute(Qt:WA_TranslucentBackground,true); w
显示();返回
Exec();}
最终对话实施代码:
Dialog:Dialog(QWidget * parent):QWidget(parent){//创建一个LineEdit来测试焦点QLineEdit * le = newQLineEdit(this);}对话框:?Dialog(){}voidDialog:paintEvent(QPaintEvent *e){Q Paintap(东)。页。
fillRect(rect(),QColor(0,0xff,0,30));}
此代码尚未在XP上正确测试。
窗口是黑色背景块。
只有颜色是半透明的。
一些图标被覆盖。
你只能把w。
setAttribute(Qt:WA_TranslucentBackground,true);评论,半透明的颜色,看不到桌面。
简介:Qt引入了集成到桌面的半透明窗口。事实上,我认为这个例子非常简单并且可以实现。
最后,我希望这篇文章有所帮助。
[编辑推荐]Qt。多线程编程的初学者需要学习。初学者必须学习Qt课程。简介QtForSymbian项目文件Qt界面编写更具体的QtWidget更多背景图像实例Qt部署实现界面实例实现多语言变更实例[编辑负责人:李成站电话:(010)68476606]
喜欢0