c++ - 高 dpi 和低 dpi 系统的 Qt Creator 行编辑和按钮大小

标签 c++ qt qt-creator

我必须重新布局一个非常复杂的 UI,因为我们发现它在高 dpi 系统上基本上不可用。这是因为为了在 Qt Creator 中获得我们想要的布局设计,我们对几乎所有内容都使用了固定大小。

我的问题是,如何调整对象(行编辑、按钮、旋转框等)的大小,使它们保持彼此的相对大小以保持所需的布局?

例如:

Example Layout with fixed pixel sized objects

这在 1080p 屏幕上呈现的完全一样,但在分辨率为 2736 x 1824 的 Windows 平板电脑上完全不可读。

Rendered Layout on Hi-DPI

那么我该如何解决这个问题呢?如果我删除绝对像素大小值,所有这些按钮和行编辑将失去控制地水平扩展并且几乎是小部件宽度的三倍。这不仅对于它们将包含的数据完全没有必要,还会破坏 UI。

我试过布局。布局不会阻止这些对象展开。似乎有一些隐藏的最小尺寸被任意设置为对我的目的来说太大了。

我查看了我能找到的 Qt Creator 资源。许多人因支持 hi-dpi 而自夸,却没有提及如何为此进行设计以在不同分辨率的设备上实现一致的外观。

最佳答案

什么版本的 Qt?

Qt 5.6 引入了高 Dpi 支持并通过系统比例因子调整所有 View 。看看 HDPI Displys Documentation .基本上,在设置您的应用程序以启用自动缩放之前,将此行添加到您的主要功能:

QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
......

关于c++ - 高 dpi 和低 dpi 系统的 Qt Creator 行编辑和按钮大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45200124/

相关文章:

c++ - 如何有选择地为 VS2010 构建 Qt?

c++ - Qt Creator 拒绝将自定义 python 程序作为构建步骤命令执行

c++ - 无符号字符数组的十六进制 QString 表示

c++ - Release模式下的 Qt 调试 - 所有方法均不起作用

c++ - gcc 问题 - 没有匹配的函数调用

c++ - QStandardItemModel & 绑定(bind)到自定义对象

c++ - 将 QString/std::string 转换为 QImage

json - 如何将多个 QJsonObject 添加到 QJsonDocument

C++ - 无法将 CSV 解析到我的结构中

c++ - 使用可变函数模板的奇怪重载决议