2012-01-12 36 views
2

不知怎的,我的QSlider不滑動。我只能點擊滑塊,然後滑塊改變他的位置。我已經用例子檢查過,但一切似乎都是一樣的。QSlider不滑動

這裏是我的QSliders之一:

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。這可能是這個,但我在智慧的結尾。

+1

那麼,我們需要更多的信息在這裏。你有問題的代碼示例嗎? – mmoment 2012-01-12 23:35:56

+0

現在你的事件流是'SLider - > Someobject',所以它完全有意義,它只有在你點擊它時纔會滑動。無論如何確實含糊不清,請解釋一下。 – UmNyobe 2012-01-13 10:31:40

+0

你將如何滑動而不點擊?鍵盤?別的?什麼_exactly_不起作用? – Lol4t0 2012-01-13 12:00:17

回答

1

也許回答你的問題是:

obj_scale_x->setTracking(true); 
0

確保你沒有一個eventFilter()的對象上漲UI層次結構定義做,如果你這樣做,確保它不如果事件不直接對事件作出反應(即在該情況下請致電BaseClass::eventFilter(obj, event)),則「吞下」該事件。

這解決了我的問題。