numlinka/d3dxSkinManage

关于4k分辨率适配问题

Ga-Ray opened this issue · 3 comments

在4k分辨率200%的缩放比例下打开软件,字体会重叠在一起显示不全
图片
如果使用系统自带的替代高DPI缩放,虽然不会重叠了,但是图片和字体又会模糊不清
图片
希望能优化下在高分辨率运行时的表现,感谢!

Windows 的缩放就是一坨屎

出现这种情况的原因我猜测是:
GUI 组件沿用了系统缩放后的字体大小,但是我默认禁用了缩放比例这导致界面绘制的大小没变,所以文字显示不全;
而使用系统代替 DPI 后 GUI 组件的原始分辨率没变,所以字体和图片显得模糊。

我并未找到一个好的解决方案。

好吧,看起来暂时无法解决这个问题,但也还能凑活用用,感谢您的回覆!

Windows 的缩放就是一坨屎

出现这种情况的原因我猜测是: GUI 组件沿用了系统缩放后的字体大小,但是我默认禁用了缩放比例这导致界面绘制的大小没变,所以文字显示不全; 而使用系统代替 DPI 后 GUI 组件的原始分辨率没变,所以字体和图片显得模糊。

我并未找到一个好的解决方案。

我也遇到了这个问题,我的解决方案是:

diff --git a/src/window/__init__.py b/src/window/__init__.py
index d25b993..478de88 100644
--- a/src/window/__init__.py
+++ b/src/window/__init__.py
@@ -89,7 +89,8 @@ def initial():
     core.log.info("初始化主窗口...", L.WINDOW)

     style.theme_use(core.env.configuration.style_theme)
-    style.configure("Treeview", rowheight=48)
+    _win_scaling = mainwindow.winfo_fpixels("1i") / 96
+    style.configure("Treeview", rowheight=16 + int(32 * _win_scaling))

我在 100% 缩放下使用截图软件测量得到 treeview 的高度为48px(与源代码一致),上下边距之和为16px~18px,我将边距以外的其他部分按显示缩放比进行了换算,获得的显示效果尚可,只是过程中的参数选择可能有点随意(逃