要允许Qt QSlider在拖动时停留在一半位置,你可以使用QSlider
的setSingleStep()
方法来设置滑块每次移动的步长。以下是一个示例代码:
QSlider *slider = new QSlider(Qt::Horizontal);
slider->setMinimum(0);
slider->setMaximum(100);
slider->setSingleStep(50); // 设置步长为50
// 连接valueChanged()信号,当滑块值改变时触发槽函数
connect(slider, &QSlider::valueChanged, [=](int value){
if (value % 50 == 0) { // 如果滑块值是50的倍数
slider->setSliderPosition(value); // 将滑块位置设置为当前值
}
});
这段代码创建了一个水平方向的QSlider
,最小值为0,最大值为100,并设置步长为50。当滑块的值改变时,如果新的值是50的倍数(即在一半位置),则将滑块位置设置为当前值。
希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问