我希望能够随时移动QSlider
键盘的箭头。
我希望能够单击 QWindow 上的任意位置并保持QSlider
激活状态以使用箭头移动光标。
我的问题是只有当我们点击QSlider
之前才允许使用箭头移动光标。
我希望我的问题足够清楚。
有谁知道如何在QSlider
不点击之前移动键盘的箭头QSlider
?
我希望能够随时移动QSlider
键盘的箭头。
我希望能够单击 QWindow 上的任意位置并保持QSlider
激活状态以使用箭头移动光标。
我的问题是只有当我们点击QSlider
之前才允许使用箭头移动光标。
我希望我的问题足够清楚。
有谁知道如何在QSlider
不点击之前移动键盘的箭头QSlider
?
有两种方法:
在 Qt 术语中,您希望让滑块成为焦点。小部件有setFocus
方法,所以你需要调用slider->setFocus(Qt::OtherFocusReason)
.
由于您希望滑块在底层窗口具有焦点时获得焦点,因此您需要将setFocus
调用放入focusInEvent
父小部件的实现中。
您可以将关键事件从底层小部件转发到滑块。在父小部件中,重新实现keyPressEvent
和keyReleaseEvent
. 当检测到所需的键时,将它们转发到滑块:
// same for keyReleaseEvent!
void MyWindow::keyPressEvent(QKeyEvent * ev) {
if (ev->key() == Qt::Key_Up || ev->key() == Qt::Key_Down) {
slider->event(ev);
}
}