我是QT和GUI相关编程的新手,希望在项目中进行2层选择菜单。我很感激您的帮助时间。
示例:组合框1具有以下选项:1。屏幕尺寸 - 中2.屏幕尺寸 - 大且取决于我想在组合框2中显示不同的屏幕分辨率选项。
用户可以多次更改组合框1选择,方框2应显示相应的选项。
我尝试使用Disabling QComboBox in pyqt中建议的QComboBox.setEnabled(False)和True 但它对我没有用,我肯定错过了一些东西。
我的代码片段:
void interface::changeFunctionx(int index)
{
delete f;
switch(index)
{
case 0:
version = 1;
functionSely->setVisible(1);
break;
case 1:
version = 1;
//some other function call still seeing how gui works
break;
}
}
答案 0 :(得分:0)
可以使用以下逻辑
重新填充QComboBox的数据QComboBox::clear()
QComboBox::insertItems(0,QStringList);
//声明类中所需的变量
class myclass : public QMainWindow {
QList<QString> lst;
QStringList ql1,ql2;
}
此示例中使用的两个组合框。即,cbo1(2项)(用户选择)&amp; cbo2(重新填充数据)
//组合框填充数据准备
//在这个例子中,下面的函数只调用一次(从构造函数的结束行调用)(初始化)
void fnPrepareStaticData(){
lst.push_back("Option-1");
lst.push_back("Option-2");
lst.push_back("Option-3");
ql1 = (QStringList(lst));
lst.clear();
lst.push_back("New-1");
lst.push_back("New-2");
lst.push_back("New-3");
ql2 = (QStringList(lst));
}
//插槽添加到QComboBox(currentIndexChanged(int index))
void MainWindow::on_cbo1_currentIndexChanged(int index)
{
ui->cbo2->clear();
switch (index) {
case 0:
ui->cbo2->insertItems(0,ql1);
break;
case 1:
ui->cbo2->insertItems(0,ql2);
break;
default:
break;
}
}