zhiyiYo / PyQt-Fluent-Widgets

A fluent design widgets library based on C++ Qt/PyQt/PySide. Make Qt Great Again.
https://qfluentwidgets.com
GNU General Public License v3.0
5.78k stars 560 forks source link

[Bug]: 系统dark色下,拖动改变窗体尺寸,会出现明显的白边 #969

Closed jiangbaihe closed 2 months ago

jiangbaihe commented 2 months ago

What happened?

系统dark色下,拖动改变窗体尺寸,会出现明显的白边

在dark模式下就非常明显,右侧和底部拖动改变大小的时候有明显的白边。

其实在light模式下也是有这个问题的,拖动右侧或底部的边框调整大小,能明显看到titlebar尺寸的渲染跟不上鼠标移动,只不过由于light模式下窗体本身就是白色的,看起来就不明显。

测试得知,是为了支持windows动画效果,开启了WS_THICKFRAME后,在当前窗体底层又渲染了一层白色的原生窗体(多一个标题栏的那个窗体),只是目前在nativeEvent中切除掉了多余部分的显示。

在改变窗体尺寸的时候,原生窗体先发生改变,然后才计算内部窗体控件的尺寸变化, 就造成了白色原生窗体先渲染出来,黑色的窗体渲染速度稍慢一步渲染。

挺难受的,想知道这个情况有办法解决或改善吗?

Operation System

Windos10

Python Version

3.8 x64

PyQt/PySide Version

PyQt5、PySide6

PyQt/PySide-Fluent-Widgets Version

2024/9/20 最新源码

How to Reproduce?

测试了Windows10Windows11masterPySide6分支

项目源码的example\splite_fluent_windowWindows11中由于启用了亚克力,可免受影响。

其余任意支持自适应亮暗主题的例子,在dark mode中白边都很明显。

Minimum code

...
zhiyiYo commented 2 months ago

暂时修复不了