我正在开发一个 Qt 项目,我注意到一些 GUI 表单存在一个持续存在的问题。该表单在 KDE(下图)和 Windows 上看起来不错,但是当应用程序在任何基于 GNOME3 的设备(如 Unity 或 GNOME3 本身)上运行时,表单的某些部分会隐藏在视图之外。(上图,Sort Ascending 单选按钮下方的所有内容都被切断)
问题似乎在于 Qt 布局如何处理大字体。如果用户使用正常大小的系统字体(<= 10pt)一切正常。如果他们使用较大的字体,则表格不足以容纳所有内容。受此错误影响的其他形式只是拥挤,但这并不像重要控制超出范围那样严重。如果我放大对话框,布局不想调整自身大小以利用新空间。有没有一种简单的方法可以做到这一点,还是我需要对其进行硬编码?最初,代码阻止了在运行时调整对话框大小,但恢复该功能并不能修复错误。即使对话框可以展开,问题是布局不会随之展开。
到目前为止,我已经将所有受影响的表单都设置为超大以弥补这个错误,但是在字体大小合适的 Windows 和 KDE 系统上让对话框比它们需要的大得多看起来很奇怪。有没有办法让受影响的对话框/布局自行调整大小,以便在运行时一切都合适?如果是这样,当部分 GUI 超出范围时,程序将如何检测它?我不希望强制使用一定的字体大小(由于视力问题,有些人可能更喜欢大字体)。
提前感谢您的帮助。