gpt4 book ai didi

c++ - Qt:QSplitter,重做大小

转载 作者:行者123 更新时间:2023-11-30 05:19:25 25 4
gpt4 key购买 nike

当应用程序启动但仍在构建时(当所有初始小部件正在创建时等等),我将一个 QSplitter 添加到我的布局中,其中有两个小部件,我想要第二个小部件或多或少占据了可用空间的 60/70%,而第一个小部件占据了剩余空间(考虑到拆分器大小本身)。

所以,一开始,在显示窗口本身之前,我尝试或多或少地重新调整这两个小部件:

splitter->setOrientation(Qt::Vertical);
auto sizes = splitter->sizes();

int& first_w = sizes.front(); // == 0
int& second_w = sizes.last(); // == 0
int diff = form_w * 2.3 - tbl_w; (30% * 2.3 = ~70%)

second_w += diff;
first_w -= diff;

splitter->setSizes(sizes);

但是,first_wsecond_w 包含 00,我不知道是不是因为大小尚未计算,或者因为小部件尚未显示(窗口未显示)并且不可见小部件的大小为 0

我该怎么做才能获得这些小部件的“ future ”尺寸? splitter 位于 QVBoxLayout 内,所有者小部件的可用空间或多或少是窗口的所有垂直空间(只有一个 QTabBar 位于拥有该 QVBoxLayout 的小部件之上,并且窗口中有一些填充)。

最佳答案

根据docs以下应该做正确的事......

splitter->setSizes(QList<int>() << 30 << 70);

如果 QSplitter 是垂直的,则应将 30% 分配给顶部小部件,将 70% 分配给下部小部件。

关于c++ - Qt:QSplitter,重做大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127882/

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