Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将comboBox移动到它的底部&x27;什么是垂直布局?_C++_Qt_Qt5_Qcombobox_Qlayout - Fatal编程技术网

C++ 如何将comboBox移动到它的底部&x27;什么是垂直布局?

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

在我的程序中,当按下按钮时,我需要垂直布局顶部的组合框向下移动到底部,以便第二个组合框位于顶部。组合框是在Qt设计器中创建的,我需要能够在应用程序的一个实例中多次创建组合框。我该怎么做呢?

小部件不能在布局中自由移动,布局管理小部件的位置和大小。获得位移的策略是从第一个位置移除小部件并重新插入:

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的内部状态。