Преждевременное отображение динамически созданных виджетов (Qt C++)

Почему после компиляции программы, ещё до того как сработала функция on_comboBox_currentIndexChanged(int index), которая реагирует на изменение индекса в comboBox, у меня label, который должен создаваться createLabel(8,60, ... ), уже отображается на заданном месте с заданными параметрами? то есть, ещё не вызывав эту функцию, label уже создаётся в заданной точке и является видимым. Почему? И как исправить чтобы появлялся только с момента выбора из comboBox.

void MainWindow::createLabel(int number, int x, int y, int width, int height, QString styleSheet) {
    QLabel* label = new QLabel(this);
    label->setObjectName("label_" + QString::number(number)); 
    label->setFixedSize(width, height);
    label->setStyleSheet(styleSheet);
    labelArray.append(label);
    label->move(x, y);
}

void MainWindow::on_comboBox_currentIndexChanged(int index)
{
    if (index == 0) { 
        setting = "Circle"; 
        createLabel(8, 60, 670, 211, 91, "background-color: #DBDBDB; border-radius: 15px; ");
    }
    else if (index == 1) setting = "Ellipse"; 
}

Ответы (1 шт):

Автор решения: nnn

проблемы была в самом начале использовать неверный сигнал currentIndexChanged. он действительно реагирует как на изменение пользователем визуально, так и программно

изменил с void MainWindow::on_comboBox_currentIndexChanged(int index) на void MainWindow::on_comboBox_activated(int index) (изменение только пользователем визуально)

→ Ссылка