问题标签 [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.
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 应用程序?
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下工作)
java - 在 Ubuntu 上处理 IDE (PDE) 中更改“系统”字体大小
我在我的 Ubuntu 笔记本电脑上使用 Processing PDE,它具有高分辨率显示屏。处理 PDE 无法像系统的其他部分一样正确扩展。我当然可以在编辑器中更改字体,但菜单、控制台……真的很小。我认为 PDE 是一个 Java Swing 应用程序。
有没有办法(命令行标志?环境变量?...?)允许增加应用程序中的“系统”字体大小?
windows - 在高 DPI Windows 应用程序中使用 DEFAULT_GUI_FONT
我有一个 Windows 应用程序,我想在高 DPI 显示器上看起来不错。该应用程序在很多地方都使用了 DEFAULT_GUI_FONT,并且以这种方式创建的字体无法正确缩放。
有没有什么简单的方法可以解决这个问题而不会太痛苦?
sdk - 如何帮助 Visual Studio 找到新的 EnableNonClientDpiScaling() 函数?
我已经将我的 SDK 更新到 Win10 周年版,但它仍然无法编译。这个功能还没有发布吗?谷歌只是向我宣布该功能现在可用,所以我很困惑。
c++ - Qt:绘制高 DPI QPixmaps
我写了画两个笑脸的应用程序:
第一个直接画在QWidget上:
第二个画在 a 上QPixmap
,而后者又被传送到小部件:
到目前为止,一切都很好。我想看看我的应用在高分辨率屏幕上的样子(我没有),所以我设置QT_SCALE_FACTOR=2
并运行了我的应用:
第一张脸清晰明快,而第二张脸是像素化的。那是因为它被绘制到低分辨率像素图上。所以我扩大了它QPixmap
并设置正确devicePixelRatio
:
结果:
第二张脸看起来像是以正确的分辨率绘制的,但随后被放大了。现在我被困住了。如何在 Retina/HiDPI 屏幕上进行绘制QPixmap
然后绘制它QPixmap
以使其正常工作?
整体应用:
openlayers-3 - 在地图(视网膜)上以 384x384 像素显示的 384x384 像素图块
我提供两种风格的 TMS 磁贴:256px 或 384px 通过渲染选项 scale=1.5。使用 Openlayers 3,我发现显示这些 384 像素图块的唯一方法是像这样转换画布上下文:
我认为这不是正确的方法,那么正确的方法是什么?
我玩了一些特殊的 ol.tilegrid 但没有成功,请参见此处: https ://jsfiddle.net/yvecai/owwc5bo8/8/
我的目标是在正确的地图上。
c++ - 如何为弹出菜单设置字体?
我在 Windows 应用程序中显示弹出菜单时遇到问题。我没有机会设置它的字体大小。我需要这样做,例如,当我有两台具有不同 DPI 的显示器并且想要在显示器上以不同于系统 DPI 的 DPI 显示菜单时。我创建的应用程序使用 Per Monitor DPI Aware manifest。
我知道在 Windows 10 中可以使用特定的 DPI 感知上下文创建菜单,因此它会被位图拉伸(在此处找到信息),但我不想拉伸任何东西。此外,使用 System 或 Unaware DPI Aware Context 创建菜单会导致其不正确的行为,例如菜单中的鼠标定位错误。
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.
非常感谢任何可以提供帮助的人!