QSpinBox
makes its contents selected (highlighted) upon using up/down buttons. Is there any way to disable this?
Is there any way to clear selection, other than use my own subclass of QSpinBox
to access the underlying QLineEdit
?
There's no way to directly disable it, but you can do a bit of a hack:
void Window::onSpinBoxValueChanged() // slot
{
spinBox->findChild<QLineEdit*>()->deselect();
}
I recommend connecting to this using a queued connection, like this:
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged()), Qt::QueuedConnection);
This will ensure that the slot is called after the line edit is highlighted.
Same solution as @Anthony's, but shorter:
connect(spinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), spinBox,
[&, spinBox](){spinBox->findChild<QLineEdit*>()->deselect();}, Qt::QueuedConnection);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With