C++ 如何将comboBox移动到它的底部&x27;什么是垂直布局?
在我的程序中,当按下按钮时,我需要垂直布局顶部的组合框向下移动到底部,以便第二个组合框位于顶部。组合框是在Qt设计器中创建的,我需要能够在应用程序的一个实例中多次创建组合框。我该怎么做呢?小部件不能在布局中自由移动,布局管理小部件的位置和大小。获得位移的策略是从第一个位置移除小部件并重新插入:C++ 如何将comboBox移动到它的底部&x27;什么是垂直布局?,c++,qt,qt5,qcombobox,qlayout,C++,Qt,Qt5,Qcombobox,Qlayout,在我的程序中,当按下按钮时,我需要垂直布局顶部的组合框向下移动到底部,以便第二个组合框位于顶部。组合框是在Qt设计器中创建的,我需要能够在应用程序的一个实例中多次创建组合框。我该怎么做呢?小部件不能在布局中自由移动,布局管理小部件的位置和大小。获得位移的策略是从第一个位置移除小部件并重新插入: QLayoutItem *child; // remove if ((child = ui->verticalLayout->takeAt(0)) != 0) { // insert
QLayoutItem *child;
// remove
if ((child = ui->verticalLayout->takeAt(0)) != 0) {
// insert
ui->verticalLayout->addItem(child);
}
您可以在下面的中找到完整的示例您有多少个组合框?如果你再按一次按钮会发生什么?@eyllanesc我有15个组合框。我可以手动将每个框的文本设置为其下方框的文本,但我觉得应该有一种更简单或更有效的方法。第二次按下时,此时位于顶部的组合框应该移到底部,其余的都向上移动一个位置。@eyllanesc是否有办法移动实际的组合框,而不是仅仅移动其内容,或者我应该将每个框的内容更改为其下方的内容?您可以举一个更具体的例子,您所指示的内容可以用多种方式解释,例如,假设您有组合框A、B、C和D,例如,如果按1、2和3按钮,顺序应该是什么。最简单的解决方案是从布局中删除QComboBox并将其重新插入新位置,因为如果复制内容,可能会丢失不属于内容的QComboBox的内部状态。