如何保持QSlider激活以允许随时使用箭头移动
How to keep a QSlider activated to allow movements with arrows at any time
我希望能够随时使用键盘箭头移动QSlider
。
我希望能够单击 QWindow 上的任意位置并保持QSlider
激活以使用箭头移动光标。
我的问题是,仅当我们之前单击QSlider
时,才允许使用箭头移动光标。
我希望我的问题足够清楚。
有谁知道如何用键盘的箭头移动QSlider
而无需单击QSlider
?
有两种方法:
-
用Qt术语来说,你想给滑块一个焦点。小部件具有
setFocus
方法,因此您需要调用slider->setFocus(Qt::OtherFocusReason)
。由于您希望滑块在基础窗口具有焦点时获得焦点,因此您需要在父小组件的
focusInEvent
实现中放置setFocus
调用。 -
您可以将关键事件从基础微件转发到滑块。在父小组件中,重新实现
keyPressEvent
并keyReleaseEvent
。检测到所需的键后,将它们转发到滑块:// same for keyReleaseEvent! void MyWindow::keyPressEvent(QKeyEvent * ev) { if (ev->key() == Qt::Key_Up || ev->key() == Qt::Key_Down) { slider->event(ev); } }
相关文章:
- 将对象移动到std::shared_ptr
- 何时在引用或唯一指针上使用移动语义
- 如何从具有移动语义的类对象中生成共享指针
- 将shared_ptr移动到<StructA>shared_ptr<变体<结构A、结构 B>>
- C / C++ 移位/偏移/向左或向右移动位图?
- MSVC将仅移动结构参数解释为指针
- 自定义先决条件对移动分配运算符有效吗
- 返回值优化:显式移动还是隐式
- 当有分配器意识的容器被复制/移动时,反弹分配器是否被复制/移走
- 为什么复制而不是移动数据元素?
- 可以使用移动语义更改或改进此C++代码吗?
- 使lambda不可复制/不可移动
- c++在使用指针时移动语义
- 将QGraphicsItem的移动区域限制在多边形区域内
- SendInput()鼠标移动计算
- 按值 C++ 返回时进行双倍移动
- 移动二维数组中的字符
- 为什么不调用移动构造函数?(默认情况下只有构造器,没有别的)
- 安全到标准:移动会员?
- 如何保持QSlider激活以允许随时使用箭头移动