qt级联combo box

比如要把以下的内容转到combo box里,一级combo box显示Quality, BedNum, BedType, Internet这四项,二级combo box只有两项,根据一级combo box里选中的条目,动态匹配:如一级下拉列表选中的是BedNum,那二级下拉列表里的选项就是Two,One

Quality={High,Low}

BedNum={Two,One}

BedType={King,Queen}

Internet={Yes,No}


没有找到官方的做法,我的做法是先把这些数据读到动态数组里,AttrNum表示属性条数,这里是4,动态数组QString attrName[AttrNum][3]里存这些单词。其中attrName[AttrNum][0]存的是一级combo box的内容,attrName[AttrNum][1]和attrName[AttrNum][2]存的是二级combo box的内容。这些准备工作都做好后,就可以开始了

先把一级combo box的内容放进comboBox控件里,这个简单,可以用addItem或addItems.

for(int i=0;i<AttrNum;i++)
        ui->comboBox->addItem(attrName[i][0]);


再把二级combo box的内容放进comboBox_2控件里:

void FormulaDialog::on_comboBox_currentIndexChanged(int index)
{
    ui->comboBox_2->clear();
    ui->comboBox_2->addItem(attrName[index][1]);
    ui->comboBox_2->addItem(attrName[index][2]);
}

注意,这个函数名是自动生成的,作用是当comboBox的currentIndex Change的时候,读入新的下拉列表内容。如何自动生成这个函数名呢?很简单,在qt designer界面里,右键点击这个comboBox控件->go to slot,然后选择currentIndexChanged(int index)这个slot就可以了!


你可能感兴趣的:(工作,qt,internet)