framelesshelper/BUGS.md

26 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 已知问题
## 拖拽窗口边框时窗口内容不能及时跟随,能看到窗口的白底
- 复现步骤:运行使用了样式表的*QWidget*程序(不使用样式表则无此问题);运行任意*Qt Quick*程序
- 原因:暂时未知
- 解决方案:对于*QWidget*程序,可以启用`Qt::WA_NoSystemBackground`属性,来禁用窗口默认的白色背景,但窗口背景会变成黑色,且无法改变,如果程序使用深色主题,则无大碍,如果使用浅色主题,体验应该不会太好。*Qt Quick*程序暂时无解。
## 拖拽窗口边框时能看到右上角的三个系统按钮/自绘内容消失(变白)
- 复现步骤:在窗口构造前执行`WinNativeEventFilter::install()`函数
- 原因:暂时未知
- 解决方案:不要全局安装过滤器,应针对每一个窗口,单独调用`addFramelessWindow`函数
## 自绘内容例如D3D错位或不能及时刷新
- 复现步骤在窗口中放置一个完全由Windows API绘制的控件
- 原因:暂时未知
- 解决方案:暂无
## resize后发现尺寸不对
- 复现步骤:在构造函数中调用`resize`函数;在安装过滤器之前调用`resize`函数
- 原因:构造函数中获取的几何位置和大小是不准确的;调用`resize`这一类的函数时Qt默认会考虑边框和标题栏的宽度但安装过滤器后边框和标题栏没了所以尺寸就不对了
- 解决方案:在控件或窗口显示出来以后再去获取或设置它们的几何位置及尺寸;先安装过滤器,再调整尺寸。