2

不知何故,我的 QSlider 没有滑动。我只能点击滑块,然后滑块改变他的位置。我已经检查了示例,但一切似乎都是一样的。

这是我的 QSlider 之一:

QSlider  *obj_scale_x= new QSlider(Qt::Horizontal);
obj_scale_x->setValue(10);
obj_scale_x->setToolTip(tr("Scale object"));
obj_scale_x->setRange(1,50);
obj_scale_x->setTickPosition(QSlider::TicksAbove);
connect(obj_scale_x, SIGNAL(valueChanged(int)), this, SLOT(objScale_x(int)));

我认为问题可能是鼠标。但这也不起作用。

void OpenGLScene::mousePressEvent(QMouseEvent *event)
{ 
    lastPos = event->pos();
}

void OpenGLScene::mouseMoveEvent(QMouseEvent *event)
{
    lastPos = event->pos();
}

我在基于 QGraphicsScene 的类中定义 Slider。可能是这样,但我无能为力。

4

2 回答 2

1

也许您的问题的答案是:

obj_scale_x->setTracking(true);
于 2012-08-06T10:34:05.303 回答
0

确保您没有eventFilter()为 UI 层次结构中更高的对象定义,如果有,请确保它不会“吞下”事件,以防它不直接对事件做出反应(即BaseClass::eventFilter(obj, event)调用这种情况)。

这为我解决了问题。

于 2018-02-02T13:57:15.287 回答