QEvent::Wheel working on a deactivated window.
-
I found it very weird when I saw it working.
Here is the thing:
Components like QComboBox, QSpinBox, etc. that accepts and changes its data through the QEvent::Wheel also changes their data when their parent window state is deactivated.I think this is a real bug.
I could solve the QComboBox adding this code on eventFilter
@bool Dialog::eventFilter(QObject *object, QEvent event)
{
if((QDialog)object)
{
if(event->type() == QEvent::FocusOut)
{
disabled = true;
}
else if(event->type() == QEvent::FocusIn)
{
disabled = false;
}
}if(object->isWidgetType() &&(event->type() == QEvent::Wheel) { if(disabled) { return true; } } return false;
}@
Unfortunately it does not work for QSpinBox, QDoubleSpinBox... it seems like they do not trigger QEvent::Wheel, so I had to connect a function to each of those components valueChanged signal, check a property I made with it's last value and reset it, in case of disable == true.
Cayan.
-
Well, for QSpinBox and QDoubleSpinBox, it is the QLineEdit instead of Q..SpinBox receive the Wheel event.