gpt4 book ai didi

c++ - QLayout 与 QStackedWidget 的问题

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

我正在实现一个选项卡样式的 UI。其中选项卡由 QListWidget 显示,内容由 QStackedWidget 显示。在 QStackWidget 的每一页上都有允许在 QHBoxlayout 中插入面板(小部件)的布局。在每个面板上,都有几个图标再次出现在 QHBoxLayout 中。下面是我想要实现的理想情况。

enter image description here

但在 QStackWidget 的其他页面上,情况并非如此(图标较少),如下所示

enter image description here

我想删除多余的空间(或将图标左对齐以消除面板上图标之间的多余空间)

我试过 spacer,然后就发生了 :(

enter image description here

请帮我改正这个问题。我的间隔码是

 inline QSpacerItem * buildSpacer(Qt::Orientation orientation)
{
QSpacerItem * pSpacer = nullptr;
if (orientation == Qt::Horizontal)
{
pSpacer = new QSpacerItem(1000, UNIT_VALUE, QSizePolicy::Expanding, QSizePolicy::Minimum);
}
else
{
pSpacer = new QSpacerItem(UNIT_VALUE, 1000, QSizePolicy::Minimum, QSizePolicy::Expanding);
}
return pSpacer;
}

注意我不想使用 QTabWidget。顺便说一句,这个问题也与 QTabWidget

最佳答案

为什么不使用 QTabWidget首先?

无论如何,您应该使用addStretch(),而不是自己创建QSpacerItem。 :

my_layout->addWidget(new Widget("widget1"));
my_layout->addWidget(new Widget("widget2"));

my_layout->addStretch(1); // will "eat" extra space

关于c++ - QLayout 与 QStackedWidget 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39346037/

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