Qt Designer 如何避免添加多余的 1 个像素间距
How to avoid adding excess 1 pixel spacing by Qt Designer
我正在开发嵌入式应用程序,我们有 256x64 灰度屏幕。 Qt 5.3 使用 -platform linuxfb 选项在该屏幕上完美呈现。显然,我们保存了 space 的每个像素,所以我遇到了麻烦:Qt Designer 为层次结构中更深的每个布局元素添加了多余的 1 个像素间距。所以他们积累了最深的小部件。更准确地说,出于某种原因,布局组件的子元素获取相对于父元素的坐标 (1,1)。因此,对于除根小部件之外的每个小部件都是如此。下图展示了第一个子部件的累积间距(细红线和粗红线)和 (1,1) 坐标。
我相信这是 Qt 行为本身,而不仅仅是 Qt Designer 问题(尚未测试)。但即使它仅在 Designer 中显示,我也无法进一步工作:我需要在设计时拥有像素精确视图。
当然,表单中每个组件的每个间距和边距都设置为 0。
手动坐标分配(从代码)当然可以解决问题,但我需要通过 uic 生成代码。
所以,我的问题是:如何避免这种间距?修复 Qt 核心源也可能是(困难的)选项,因为无论如何我们都会为项目重新编译 Qt。
谢谢。
伊利亚.
如果您 select Form > View Code,您可以看到几何图形实际上并未用于布局内的小部件。因此,您在 属性 编辑器中看到的数字纯粹是信息性的,与从 ui 文件生成的最终代码无关(这就是它们显示为灰色的原因)。
存在一个像素偏移是因为 Qt Designer 需要 space 在布局周围绘制红色框。它们必须以某种方式 表示,所以我看不出在 Qt Designer 当前的工作方式下如何避免这种情况。如果你想更准确地再现最终结果,我想你必须展示预览。
设置 > 首选项 > 嵌入式设计 中有一个工具允许您指定设备配置文件(确定样式、字体和屏幕分辨率等内容)。这会在 Preview In 菜单中添加一个新条目,这样您就可以进一步优化预览的准确性。
我正在开发嵌入式应用程序,我们有 256x64 灰度屏幕。 Qt 5.3 使用 -platform linuxfb 选项在该屏幕上完美呈现。显然,我们保存了 space 的每个像素,所以我遇到了麻烦:Qt Designer 为层次结构中更深的每个布局元素添加了多余的 1 个像素间距。所以他们积累了最深的小部件。更准确地说,出于某种原因,布局组件的子元素获取相对于父元素的坐标 (1,1)。因此,对于除根小部件之外的每个小部件都是如此。下图展示了第一个子部件的累积间距(细红线和粗红线)和 (1,1) 坐标。
我相信这是 Qt 行为本身,而不仅仅是 Qt Designer 问题(尚未测试)。但即使它仅在 Designer 中显示,我也无法进一步工作:我需要在设计时拥有像素精确视图。 当然,表单中每个组件的每个间距和边距都设置为 0。 手动坐标分配(从代码)当然可以解决问题,但我需要通过 uic 生成代码。
所以,我的问题是:如何避免这种间距?修复 Qt 核心源也可能是(困难的)选项,因为无论如何我们都会为项目重新编译 Qt。
谢谢。 伊利亚.
如果您 select Form > View Code,您可以看到几何图形实际上并未用于布局内的小部件。因此,您在 属性 编辑器中看到的数字纯粹是信息性的,与从 ui 文件生成的最终代码无关(这就是它们显示为灰色的原因)。
存在一个像素偏移是因为 Qt Designer 需要 space 在布局周围绘制红色框。它们必须以某种方式 表示,所以我看不出在 Qt Designer 当前的工作方式下如何避免这种情况。如果你想更准确地再现最终结果,我想你必须展示预览。
设置 > 首选项 > 嵌入式设计 中有一个工具允许您指定设备配置文件(确定样式、字体和屏幕分辨率等内容)。这会在 Preview In 菜单中添加一个新条目,这样您就可以进一步优化预览的准确性。