最简单的无边框窗口添加阴影效果方法,3行代码

quaddamage 2017-03-23 10:54:16
主窗口QMainWindow添加阴影:
setWindowFlags(Qt::FramelessWindowHint | Qt::ToolTip);
SetWindowPos(this->winId(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
SetWindowLong(this->winId(), GWL_EXSTYLE, WS_EX_APPWINDOW);

子窗口QDialog添加阴影
setWindowFlags(Qt::FramelessWindowHint | Qt::ToolTip);
SetWindowPos(this->winId(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

当然阴影效果不能自定义,但毕竟是最简单的方法了,而且完全不影响样式表里设置的皮肤背景。
...全文
1411 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2017-03-27
  • 打赏
  • 举报
回复
用了Q::Tooltip不太好,会使子窗口始终在最前面,因为是Tooltip。比如,窗口最小化,再还原,主窗口不会出现我记得,只显示子窗口,感觉上像子窗口与主窗口脱离绑定了

21,474

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧