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++ 如果用户单击组合框,则动态填充项目_C++_Qt_Qcombobox - Fatal编程技术网

C++ 如果用户单击组合框,则动态填充项目

C++ 如果用户单击组合框,则动态填充项目,c++,qt,qcombobox,C++,Qt,Qcombobox,在Qt QComboBox中,没有单击信号来获取要覆盖的插槽。但是我需要动态地填充组合框项目。也就是说,我需要检查项目并更新组合框“所有项目”列表(当用户更改其他项目时,会对列表产生影响)。对于这个复杂的问题,我们可以在qt中使用事件过滤器方法。尝试返回false以执行进一步处理的所有操作 bool QtMyWindow::eventFilter(QObject *f_object, QEvent *f_event){ if(f_object == ui->comboBoxRese

在Qt QComboBox中,没有单击信号来获取要覆盖的插槽。但是我需要动态地填充组合框项目。也就是说,我需要检查项目并更新组合框“所有项目”列表(当用户更改其他项目时,会对列表产生影响)。

对于这个复杂的问题,我们可以在qt中使用事件过滤器方法。尝试返回false以执行进一步处理的所有操作

bool QtMyWindow::eventFilter(QObject *f_object, QEvent *f_event){
    if(f_object == ui->comboBoxResetValue){
        if(f_event->type() == QEvent::MouseButtonPress){
            fillItems(); // try to clear before fill to avoid repetitions
        }
        return false;
    }
    return false;
}
我们还通知对象我们将为您过滤事件,所以在构造函数中,包括这一行

QtMyWindow::QtMyWindow(QObject* parent,...)
{
    ...
    ui->comboBox->installEventFilter(this);
}