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

标签 c++ qt resize qsplitter

我使用 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/

相关文章:

c++ - 不指定函数参数求值的确切顺序如何帮助 C 和 C++ 编译器生成优化代码?

jquery - slider 高度技术

c++ - 关于指针、双指针、malloc、realloc 和 new 的一系列问题(澄清事实)

c++ - MFC中如何获取可见显示器的宽度?

C++动态分配程序崩溃

c++ - 将信号/插槽(QObject)添加到 QGraphicsItem : performance hit?

c++ - Qt 属性语法的正确使用

c++ - QTimeEdit 设置的最大值大于 23 :59:59

javascript - Svelte:<svelte:window bind:innerHeight/> 在调整窗口大小时无法使用 div 中的样式属性

php - 如何在没有exec的情况下在php中使用ffmpeg调整视频大小