在QtDesigner中,控件过于庞大且无法调整大小

19
我在Qt Designer中制作了一个“小部件”,其中包含约十几个控件,组织成水平和垂直布局。奇怪的是,每个水平布局都想要一些大的尺寸,大约400像素宽,而整个表单的尺寸设置为275像素宽。内部包含的按钮等太宽了。当我垂直或水平地调整小部件形式(有时关闭最大宽度)时,各种布局不会重新调整大小。手动设置宽度(或最小宽度、最大宽度)可能会影响控件的大小,但不会影响其在布局中的间距。插入间隔器来保持一些控件在顶部,另一些控件在底部,并在它们之间添加一个灵活的空间,根本就不起作用。
我忽略了什么(很可能是显而易见的事情)?
(我通常不是应用程序或GUI程序员,完全是个落后的人。)

2
请将问题简化到最简单的情况,并在此处发布您的.ui文件。 - TonyK
也许添加一个屏幕截图或图表来传达问题。 - Arnold Spence
2个回答

49
不要责怪自己,我认为当你开始处理Qt的布局逻辑时可能有些困惑。 如果我理解得正确,表单的内容没有“连接”,即不会调整大小并且不受表单大小的限制,对吗? 我认为你忘记设置“centralWidget layout”了。 请尝试以下操作:
  1. 双击QtCreator中的表单打开它(我不经常使用QtDesigner,但我认为两个工具的编辑器布局几乎相同)。

  2. 转到右上窗口(具有2列“Object-Class”)并用鼠标右键单击根对象(例如MainWindow)。

  3. 将出现一个上下文菜单。单击“Lay out”(最后一个菜单项),然后选择“Layout Vertically”或“Layout Horizontally”

enter image description here

这些操作将在centralWidget对象上创建一个布局。如果您在“Object-Class”窗口中选择“centralWidget”,则可以在(右下角)属性值窗口中查看和更改布局属性;它们是列表中的最后属性。

更重要的是,在您在centralWidget中添加布局之后,您的表单内容应该会随着表单大小的调整而调整大小,被限制在表单大小之内。

我希望这可以帮助你。


嗨,Fivos,我按照你的步骤进行了操作,但在更改布局后,我的所有布局都变得完全不同。目前,我在左侧有绘图区域,在右侧面板上有GUI按钮,如下拉菜单、点击等。更改为水平或垂直布局后,这些原始布局变得一团糟。你能帮我一下吗?我已经寻找解决方案很长时间了,今天我终于很高兴找到了你的帖子。 - roudan
1
嗨@roudan,正如您所看到的,这个问题已经存在10多年了,Qt版本是v4.7,现在是v6.x,很难猜测您的具体设计并给出有用的建议。(a)尝试使用“网格布局”或“表单布局”(b)确保您的表单中有一个包含所有其他小部件的中央小部件(c)如果其他一切都失败了,请尝试找到任何具有类似顶部结构的Qt示例,并研究主窗口的布局设置和结构。 - Fivos Vilanakis

0
如果您正在使用.qss模板,请确保通过记事本打开并检查其设置。有时这些模板会有自定义的比例设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接