gpt4 book ai didi

c++ - 如何保持 QSlider 处于激活状态以允许随时使用箭头移动

转载 作者:行者123 更新时间:2023-11-28 07:05:57 26 4
gpt4 key购买 nike

我希望能够随时用键盘的箭头移动QSlider

我希望能够单击 QWindow 上的任意位置并保持激活 QSlider 以使用箭头移动光标。

我的问题是只有在我们之前点击QSlider 时才允许使用箭头移动光标。

我希望我的问题足够清楚。

有谁知道如何在不点击 QSlider 的情况下用键盘的箭头移动 QSlider 吗?

最佳答案

有两种方法:

  1. 在 Qt 术语中,您希望为 slider 提供焦点。 Widgets有setFocus方法,所以你需要调用slider->setFocus(Qt::OtherFocusReason)

    由于您希望 slider 在底层窗口获得焦点时获得焦点,因此您需要将 setFocus 调用放入父小部件的 focusInEvent 实现中。

  2. 您可以将关键事件从底层小部件转发到 slider 。在父控件中,重新实现 keyPressEventkeyReleaseEvent。当检测到所需的键时,将它们转发到 slider :

    // same for keyReleaseEvent!
    void MyWindow::keyPressEvent(QKeyEvent * ev) {
    if (ev->key() == Qt::Key_Up || ev->key() == Qt::Key_Down) {
    slider->event(ev);
    }
    }

关于c++ - 如何保持 QSlider 处于激活状态以允许随时使用箭头移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com