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