在 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);
}
关于c++ - QComboBox 的鼠标按下槽 - 如果用户单击组合框,则动态填充项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773368/