我正在开发一个Qt项目,发现某些GUI表单存在持续问题。在KDE(下图)和Windows上,表单看起来正常,但是当应用在任何基于GNOME3的系统上时(如Unity或GNOME3本身),表单的某些部分被隐藏了。(上图中,位于“排序升序”单选按钮下方的所有内容都被截断了)
问题似乎出在Qt布局如何处理大字号上。如果用户使用普通大小的系统字体(<= 10pt),一切都正常。如果他们使用更大的字体,则表单不足以容纳所有内容。由此bug影响的其他表单仅仅是过于拥挤,不像将必要的控件排除在界外这么严重。如果我放大对话框,布局不想自行调整大小以充分利用新增的空间。是否有一种简单的方法可以让它这样做,还是需要硬编码呢?最初,该代码在运行时防止对话框改变大小,但恢复该功能并没有解决该bug。即使对话框可以扩展,问题也在于布局不会随之扩展。
到目前为止,我已经使所有受影响的表单超大以弥补这个bug,但是在Windows和KDE系统上,这些对话框比需要的尺寸大得很奇怪。是否有一种方法可以使受影响的对话框/布局在运行时自行调整大小,以便所有内容都适当地适应?如果有的话,程序将如何检测界面中的部分是否超出边界?我希望不要强制使用某个字体大小(某些人可能因视力问题而喜欢使用大字体)。
提前感谢您的帮助。
图1:选项的一部分被截断(就在“排序升序”下面)
图2:这是它应该看起来的样子
问题似乎出在Qt布局如何处理大字号上。如果用户使用普通大小的系统字体(<= 10pt),一切都正常。如果他们使用更大的字体,则表单不足以容纳所有内容。由此bug影响的其他表单仅仅是过于拥挤,不像将必要的控件排除在界外这么严重。如果我放大对话框,布局不想自行调整大小以充分利用新增的空间。是否有一种简单的方法可以让它这样做,还是需要硬编码呢?最初,该代码在运行时防止对话框改变大小,但恢复该功能并没有解决该bug。即使对话框可以扩展,问题也在于布局不会随之扩展。
到目前为止,我已经使所有受影响的表单超大以弥补这个bug,但是在Windows和KDE系统上,这些对话框比需要的尺寸大得很奇怪。是否有一种方法可以使受影响的对话框/布局在运行时自行调整大小,以便所有内容都适当地适应?如果有的话,程序将如何检测界面中的部分是否超出边界?我希望不要强制使用某个字体大小(某些人可能因视力问题而喜欢使用大字体)。
提前感谢您的帮助。
图1:选项的一部分被截断(就在“排序升序”下面)
图2:这是它应该看起来的样子