[SOLVED] How to insert a dynamic multidimensional QComboBox into a LayOut

Issue

I’m trying to insert multiple QComboBoxes from a dynamic multidimensional QComboBox like :

QComboBox **test = new QComboBox *[x];
test[x] = new QComboBox [y];

ui->QVBoxLayout->addWidget(test["one of x values"]["one of y values"]);

But this gives me an error of : no viable convert from QComboBox to *QWidget.

Using :

  QComboBox *test = new QComboBox;
  ui->QVBoxLayout->addWidget(test);

Works just fine.

My case is (this is examplery):

  for(int tmp = 1; fieldAmount >= tmp; tmp++){
            //fieldAmount is the number of fields presented in a table that was loaded in from a file
            combobox1[currentTable] = new QComboBox [tmp];
            ui->verticalLayout_2->addWidget(&combobox1[currentTable][tmp]); //Gives the seg fault

  }

What my case does is based on a file that I load in, finds the amount of tables i will have and in them the amount of values that needs to be entered. That is why I need a dynamic multidimensional QComboBox.

What is the syntax (or execution order) that I’m not getting right ?
If this is a duplicate, than im sorry in advance but I was not able to find it the question already posted on here.

Solution

combobox1[currentTable] = new QComboBox [fieldAmount];
for(int tmp = 0; fieldAmount > tmp; tmp++){

ui->verticalLayout_2->addWidget(&combobox1[currentTable][tmp]);

}

where fieldAmount is

int fieldAmount = (SQLDataBaseContet->record()).count()-1; // -1 as offset because of id

Answered By – Fetert

Answer Checked By – Cary Denson (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *