gpt4 book ai didi

c++ - 如何根据同一布局中的另一个小部件将添加的小部件定位到布局?

转载 作者:太空狗 更新时间:2023-10-29 20:36:55 25 4
gpt4 key购买 nike

在我的 GUI 中,我想根据特定操作触发的信号以编程方式将 QComboBox 添加到 verticalLayout。以下代码工作正常并添加了小部件:

QComboBox* userOptions = new QComboBox();
ui->verticalLayout_13->addWidget(userOptions);

但是,这种方式总是将小部件添加到布局的末尾。

我的问题是:如何将添加的 QComboBox 定位到 verticalLayout 以与同一布局中的另一个小部件对齐? (例如:在“开始”按钮上方)

最佳答案

似乎没有办法在您想要的布局中显式插入项目。

你有几个选择来实现“困难”的方式:

  • 使用 QLayout::takeAt(int index) 获取您要插入的索引之后的所有项目,插入您的项目,然后插入取回的项目。
  • 创建一个占位符小部件,您可以使用它在布局中保留一个索引,然后您不将该项目插入布局中,而是插入占位符小部件内嵌套的布局中。如果没有项目,占位符小部件不占用空间,并且会扩展以容纳放入其中的任何内容。
  • 实现您自己的 QLayout 子类,它支持在特定索引处插入。您必须实现几个功能。

编辑:我的遗漏,正如 Kuba Ober 指出的那样,大多数具体布局实现都支持在特定索引处插入,例如 QBoxLayout 派生具有将索引作为参数传递的插入方法.

关于c++ - 如何根据同一布局中的另一个小部件将添加的小部件定位到布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36746949/

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