QSpinBox
使用向上/向下按钮选择(突出显示)其内容。有什么办法可以禁用它吗?除了使用我自己的子类QSpinBox
来访问底层之外,还有什么方法可以清除选择QLineEdit
?
问问题
4512 次
2 回答
9
没有办法直接禁用它,但你可以做一些 hack:
void Window::onSpinBoxValueChanged() // slot
{
spinBox->findChild<QLineEdit*>()->deselect();
}
我建议使用排队连接来连接它,如下所示:
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged()), Qt::QueuedConnection);
这将确保在突出显示行编辑后调用插槽。
于 2012-10-15T11:32:59.813 回答
1
与@Anthony 的解决方案相同,但更短:
connect(spinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), spinBox,
[&, spinBox](){spinBox->findChild<QLineEdit*>()->deselect();}, Qt::QueuedConnection);
于 2021-09-20T21:29:33.540 回答