0
我希望能隨時用鍵盤箭頭移動QSlider
。如何激活QSlider以允許隨時使用箭頭移動
我希望能夠點擊QWindow上的任何位置並保持激活QSlider
以用箭頭移動光標。
我的問題是,只有在我們點擊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);
}
}
好的謝謝我做到了。我在你發給我的代碼中的'if'之前添加了代碼'slider-> setFocus();'我也對keyReleaseEvent執行了同樣的操作。 – Jeanstackamort