gpt4 book ai didi

c++ - 如何在 Qt 中以编程方式调整拆分器小部件的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:25 26 4
gpt4 key购买 nike

我使用 QSplitter 并排放置一些小部件。

作为用户,我只需拖动分隔条即可调整这些小部件的大小。

作为一名程序员,我现在不知道如何准确指定我想要的宽度和高度。

这是我的原始状态(通过不同的拉伸(stretch)调整)。 Original state

我尝试使用 setFixedSize(),但在该调用之后,用户无法再自行调整小部件的大小(这绝对是正确的行为,因为大小已“固定”)。 enter image description here

如果我使用 resize(),它几乎没有效果。小部件已调整大小,但 (!) 不正确,并且 (!) 当我再次开始拖动时,小部件将获得其初始状态。 enter image description here

有什么方法可以正确调整代码中左侧小部件的大小吗?我不想有固定大小,但 resize() 不能正常工作,如您所见。那我该怎么办呢?

最佳答案

QSplitter有它的方法 QSplitter::setSizes(QList<int>) 其中列表中的每个条目都是小部件的大小(以像素为单位),分别从左到右或从上到下。该方法不需要您知道确切的宽度,它仍然适用于猜测的尺寸。

例如,我使用此功能将用户定义的尺寸(通过 QSplitter::sizes() 获得)存储在 QSettings 中程序关闭时的实例,并在软件再次启动时重新应用它们。如果由于某种原因未设置它们,我只需设置总宽度除以拆分器中的小部件数量,它作为初始状态就足够好了。

关于c++ - 如何在 Qt 中以编程方式调整拆分器小部件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com