问题标签 [highdpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5419 浏览

c++ - 如何着手开发新的 Qt 5.7+ High-DPI Per Monitor DPI Aware 应用程序?

我已经阅读了Qt 官方文档以及 StackOverflow 上关于 Qt 中高 DPI 支持的许多文章和问题。他们都专注于移植旧应用程序并使它们以尽可能少的更改工作。

但是,如果我要启动一个全新的应用程序,以支持每个显示器的 DPI 感知应用程序,那么最好的方法是什么?

如果我理解正确,Qt::AA_EnableHighDpiScaling这与我想要的完全相反。我实际上应该禁用 HighDpiScaling 并在运行时手动计算所有尺寸吗?

许多建议说根本不使用尺寸,而是使用浮动布局。但在许多情况下,至少需要存在最小宽度和/或最小高度。由于 Qt Designer 只允许我将值放在绝对像素中,那么正确的方法是什么?如果显示器分辨率发生变化,我应该在哪里放置代码以重新计算尺寸?

还是我应该使用自动缩放?

我以前 Qt 应用程序的解决方案(未经过充分测试)

在我尝试添加 HighDPI 支持的一个较旧的应用程序中,我使用了这种方法 - 列出 DOM 的所有子级,并在给定某个比率的情况下一一调整它们的大小。Ratio = 1 将产生与我在 Qt Designer 中指定的尺寸相同的尺寸。

从 main 调用:

我不认为这是一个好的解决方案。鉴于我刚开始,我可以根据最新的 Qt 标准完全自定义我的代码,我应该使用什么方法来获取 HighDPI 应用程序?

0 投票
1 回答
675 浏览

c++ - 在 Qt 中设计具有自动缩放字体大小的用户界面

Qt 5.7 声称改进了高 DPI 支持。使用现代 Qt,可以创建一个应用程序启动器,例如:

我希望 UI 在高 DPI 上运行时会自动缩放,但缩放不一定按预期工作。至少它不会在 Linux 下为我扩展 UI。我看到的是布局按比例放大,但字体保持在原来的位置,Qt Creator 在表单布局工具中为其分配的大小。

如果您想为某些元素设置更大的字体,并在表单设计屏幕中设置它,似乎没有办法说“两倍大”。相反,它会注入一个具有绝对磅值的字体属性。

QMessageBox 静态方法似乎也一样。显示一个静态 QMessageBox,就像QMessageBox::info它的文本和图标不会放大以补偿高 dpi。

那么究竟应该怎么做才能让在 Creator 中以标准 DPI 设计的 Qt 应用程序自动适应高 DPI 环境、字体、QMessageBoxes 等等。

我已经获得了一些牵引力,将应用程序的样式表设置为对 QMessageBox 使用更大的字体。但感觉很难看,我不知道如何自动触发它。

编辑:

手动设置环境变量

declare -x QT_SCALE_FACTOR=2

似乎确实调用了我正在寻找的那种行为。但是如何只在高 DPI 环境下自动完成,最好是在程序本身内部。(setenv (3)我猜可以在Linux下工作)

0 投票
1 回答
654 浏览

java - 在 Ubuntu 上处理 IDE (PDE) 中更改“系统”字体大小

我在我的 Ubuntu 笔记本电脑上使用 Processing PDE,它具有高分辨率显示屏。处理 PDE 无法像系统的其他部分一样正确扩展。我当然可以在编辑器中更改字体,但菜单、控制台……真的很小。我认为 PDE 是一个 Java Swing 应用程序。

有没有办法(命令行标志?环境变量?...?)允许增加应用程序中的“系统”字体大小?

0 投票
3 回答
2075 浏览

windows - 在高 DPI Windows 应用程序中使用 DEFAULT_GUI_FONT

我有一个 Windows 应用程序,我想在高 DPI 显示器上看起来不错。该应用程序在很多地方都使用了 DEFAULT_GUI_FONT,并且以这种方式创建的字体无法正确缩放。

有没有什么简单的方法可以解决这个问题而不会太痛苦?

0 投票
1 回答
295 浏览

sdk - 如何帮助 Visual Studio 找到新的 EnableNonClientDpiScaling() 函数?

我已经将我的 SDK 更新到 Win10 周年版,但它仍然无法编译。这个功能还没有发布吗?谷歌只是向我宣布该功能现在可用,所以我很困惑。

0 投票
1 回答
256 浏览

java - jtree 高 DPI 无法缩放

我有一个使用 JTree 的 java swing 应用程序。
我最近搬到了 UHD 显示器,现在 JTree 不能很好地扩展。
我感觉它使用图标来缩放行高,但不知道如何影响自己。
请注意,如果UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());被排除在外,它在新显示器上会小得难以阅读。
请参阅下面的屏幕截图/简单示例代码。

正常分辨率 jtree 截图:

https://i.stack.imgur.com/n4fUe.png

超高清分辨率jtree截图:

https://i.stack.imgur.com/hvXMf.png

谢谢你。

0 投票
1 回答
4748 浏览

c++ - Qt:绘制高 DPI QPixmaps

我写了画两个笑脸的应用程序:

在此处输入图像描述

第一个直接画在QWidget上:

第二个画在 a 上QPixmap,而后者又被传送到小部件:

到目前为止,一切都很好。我想看看我的应用在高分辨率屏幕上的样子(我没有),所以我设置QT_SCALE_FACTOR=2并运行了我的应用:

在此处输入图像描述

第一张脸清晰明快,而第二张脸是像素化的。那是因为它被绘制到低分辨率像素图上。所以我扩大了它QPixmap并设置正确devicePixelRatio

结果:

在此处输入图像描述

第二张脸看起来像是以正确的分辨率绘制的,但随后被放大了。现在我被困住了。如何在 Retina/HiDPI 屏幕上进行绘制QPixmap然后绘制它QPixmap以使其正常工作?

整体应用:

0 投票
2 回答
221 浏览

openlayers-3 - 在地图(视网膜)上以 384x384 像素显示的 384x384 像素图块

我提供两种风格的 TMS 磁贴:256px 或 384px 通过渲染选项 scale=1.5。使用 Openlayers 3,我发现显示这些 384 像素图块的唯一方法是像这样转换画布上下文:

我认为这不是正确的方法,那么正确的方法是什么?

我玩了一些特殊的 ol.tilegrid 但没有成功,请参见此处: https ://jsfiddle.net/yvecai/owwc5bo8/8/

我的目标是在正确的地图上。

0 投票
0 回答
717 浏览

c++ - 如何为弹出菜单设置字体?

我在 Windows 应用程序中显示弹出菜单时遇到问题。我没有机会设置它的字体大小。我需要这样做,例如,当我有两台具有不同 DPI 的显示器并且想要在显示器上以不同于系统 DPI 的 DPI 显示菜单时。我创建的应用程序使用 Per Monitor DPI Aware manifest。

我知道在 Windows 10 中可以使用特定的 DPI 感知上下文创建菜单,因此它会被位图拉伸(在此处找到信息),但我不想拉伸任何东西。此外,使用 System 或 Unaware DPI Aware Context 创建菜单会导致其不正确的行为,例如菜单中的鼠标定位错误。

0 投票
1 回答
1068 浏览

c# - 如何在 .NET 中正确自动缩放 ToolStrip

我正在努力解决以下问题,我想知道是否有人可以提供帮助。

我正在构建一个面向 .NET 4.6 的 .NET C# WinForm 应用程序,它应该改进了对高 DPI 的支持。我正在笔记本电脑上开发该应用程序,该应用程序具有 4K 屏幕,并且在 Windows 10 中缩放设置为 200%。

我的应用调用 SetHighDPIAware 并在 app.config

放。问题是:当我添加工具条时,它在我的 PC 上正确显示,但在我的客户 PC 上尺寸增加了一倍(仅图像)。结果非常难看。ToolStrip 和 ToolStrip 项的所有属性都设置为默认值:autosize = true, imagescaling size = 32;32、imagescalingmode = sizetofit.

非常感谢任何可以提供帮助的人!

UP:我的电脑 DOWN:客户电脑