添加新部件时如何缩小 QSplitter 中的第一个部件?
How to shrink first widget in QSplitter when adding new one?
我有一个 QSplitter,它有一个大部件,后面跟着几个小部件。添加新的小部件时,即使大的 space 仍然比其 sizeHint()
多得多 sizeHint()
。
,但小的会缩小到低于推荐的 sizeHint()
我可以改变这种行为吗?我是否需要使用 QSplitter::setSizes()
来执行此操作?如果需要,如何检测某个小部件是 added/removed/resized?
我希望小部件可以自由调整大小,因此使用 setFixedHeight()
不是一个可接受的解决方案。
例如,我有两个首选高度为 200 像素的小部件(第一个屏幕截图)。
当我添加第三个时,它需要的高度超过了首选高度,缩小了其他高度,即使它们都可以有它们的首选高度。
尝试QSplitter::setStretchFactor(index, factor);
。例如,为第一个小部件设置 factor=0,为其余小部件设置 factor=1。
您可以为 QEvent::LayoutRequest
安装事件过滤器和过滤器来检测某个小部件是 added/removed,尽管它也可以因其他原因被触发。
我有一个 QSplitter,它有一个大部件,后面跟着几个小部件。添加新的小部件时,即使大的 space 仍然比其 sizeHint()
多得多 sizeHint()
。
sizeHint()
我可以改变这种行为吗?我是否需要使用 QSplitter::setSizes()
来执行此操作?如果需要,如何检测某个小部件是 added/removed/resized?
我希望小部件可以自由调整大小,因此使用 setFixedHeight()
不是一个可接受的解决方案。
例如,我有两个首选高度为 200 像素的小部件(第一个屏幕截图)。 当我添加第三个时,它需要的高度超过了首选高度,缩小了其他高度,即使它们都可以有它们的首选高度。
尝试QSplitter::setStretchFactor(index, factor);
。例如,为第一个小部件设置 factor=0,为其余小部件设置 factor=1。
您可以为 QEvent::LayoutRequest
安装事件过滤器和过滤器来检测某个小部件是 added/removed,尽管它也可以因其他原因被触发。