gpt4 book ai didi

qt - QSlider鼠标直接跳转

转载 作者:行者123 更新时间:2023-12-01 16:30:50 24 4
gpt4 key购买 nike

当用户单击 qslider 上的某个位置时,我不想让 slider 跳转到该位置,而是单步执行。如何实现?

最佳答案

在所有版本的 @spyke @Massimo Callegari 和 @Ben 出现问题(整个区域的 slider 位置不正确)之后,我在 QSlider 源代码中发现了一些 Qt 样式功能:QStyle::SH_Slider_AbsoluteSetButtons

您必须创建一个新的 QStyle,这可能会非常烦人,或者您使用 ProxyStyle,如 http://www.qtcentre.org/threads/9208-QSlider-step-customize?p=49035#post49035 中的用户 jpn 所示。

我添加了另一个构造函数并修复了拼写错误,但使用了原始源代码的其余部分。

#include <QProxyStyle>

class MyStyle : public QProxyStyle
{
public:
using QProxyStyle::QProxyStyle;

int styleHint(QStyle::StyleHint hint, const QStyleOption* option = 0, const QWidget* widget = 0, QStyleHintReturn* returnData = 0) const
{
if (hint == QStyle::SH_Slider_AbsoluteSetButtons)
return (Qt::LeftButton | Qt::MidButton | Qt::RightButton);
return QProxyStyle::styleHint(hint, option, widget, returnData);
}
};

现在您可以在 slider 构造函数中设置 slider 的样式(如果您的 slider 源自 QSlider):

setStyle(new MyStyle(this->style()));

或者如果它是标准 QSlider,它应该以这种方式工作:

standardSlider.setStyle(new MyStyle(standardSlider->style()));

因此您使用该元素的原始样式,但如果要求 QStyle::SH_Slider_AbsoluteSetButtons“属性”,您可以根据需要返回;)

也许您必须在删除 slider 时销毁这些代理样式,尚未测试。

关于qt - QSlider鼠标直接跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132597/

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