Как предотвратить автоматическое выделение содержимого QSpinBox

QSpinBox делает его содержимое выбранным (выделенным) при использовании кнопок вверх/вниз. Есть ли способ отключить это? Есть ли способ очистить выбор, кроме как использовать мой собственный подкласс QSpinBox для доступа к базовому QLineEdit?

1 ответов


нет способа напрямую отключить его, но вы можете сделать немного взломать:

void Window::onSpinBoxValueChanged() // slot
{
    spinBox->findChild<QLineEdit*>()->deselect();
}

Я рекомендую подключиться к этому, используя соединение в очереди, например:

connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged()), Qt::QueuedConnection);

это гарантирует, что слот вызывается после того, как линия редактирования выделена.