本文整理汇总了C++中setSliderPosition函数的典型用法代码示例。如果您正苦于以下问题:C++ setSliderPosition函数的具体用法?C++ setSliderPosition怎么用?C++ setSliderPosition使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setSliderPosition函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: qxt_d
/*!
\reimp
*/
void QxtStars::mousePressEvent(QMouseEvent* event)
{
if (qxt_d().readOnly)
{
event->ignore();
return;
}
QAbstractSlider::mousePressEvent(event);
if (maximum() == minimum() || (event->buttons() ^ event->button()))
{
event->ignore();
return;
}
event->accept();
QStyleOptionSlider opt = qxt_d().getStyleOption();
const QRect sliderRect = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
const QPoint center = sliderRect.center() - sliderRect.topLeft();
const int pos = qxt_d().pixelPosToRangeValue(qxt_d().pick(event->pos() - center));
setSliderPosition(pos);
triggerAction(SliderMove);
setRepeatAction(SliderNoAction);
qxt_d().snapBackPosition = pos;
update();
}
示例2: qMax
void ScrollBar::mouseMoveEvent(QMouseEvent *ev)
{
if (mouse_grabed_) {
// position diff
int pos = (orientation_ == Qt::Horizontal ? ev->pos().x() : ev->pos().y()) - bar_grabed_position_;
// fix negative
pos = qMax(pos, 0);
Q_ASSERT(pos >= 0);
// fix maximum
const qint64 value = qMin(sliderValueFromPosition(pos, drawBarSize()), maximum_);
Q_ASSERT(value <= maximum_);
if (isSliderDown()) {
setSliderPosition(value);
}
if (hasTracking()) {
setValue(value);
}
} else {
// When mouse hovering
if (isScrollBarArea(ev->pos())) {
// TODO: animation
}
}
}
示例3: qDebug
// Based on code from qslider.cpp
void Slider::mousePressEvent( QMouseEvent *e )
{
qDebug("pressed (%d, %d)", e->pos().x(), e->pos().y());
if( e->button() == Qt::LeftButton )
{
qDebug( "Left button" );
QStyleOptionSlider opt;
initStyleOption( &opt );
const QRect sliderRect = style()->subControlRect( QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this );
const QPoint center = sliderRect.center() - sliderRect.topLeft();
// to take half of the slider off for the setSliderPosition call we use the center - topLeft
if ( ! sliderRect.contains( e->pos() ) )
{
qDebug( "accept" );
e->accept();
int v = pixelPosToRangeValue( pick( e->pos() - center ) );
setSliderPosition( v );
triggerAction( SliderMove );
setRepeatAction( SliderNoAction );
emit sliderMoved( v );//TODO: ok?
emit sliderPressed(); //TODO: ok?
}
else
{
QSlider::mousePressEvent( e );
}
}
else
{
QSlider::mousePressEvent( e );
}
}
示例4: sort
//-----------------------------------------------------------------------------
// Name: syncToList
// Desc: Synchronizes this slider's position with the list to which it
// is attached. This method is safe to call at any time and will
// not produce an infinite loop.
//-----------------------------------------------------------------------------
void EvidyonGUIList::ListSlider::syncToList()
{
EvidyonGUIList* owner = myOwner;
myOwner = 0; // prevent recursive calling of any sort (future prevention, doesn't do anything now)
setSliderPosition(owner->getScrollIndexPercent());
myOwner = owner;
}
示例5: qRound
void ScrollBar::moveSlider(double min, double max)
{
const int sliderTicks = qRound((max - min) /
(d_maxBase - d_minBase) * d_baseTicks);
// setRange initiates a valueChanged of the scrollbars
// in some situations. So we block
// and unblock the signals.
blockSignals(true);
setRange(sliderTicks / 2, d_baseTicks - sliderTicks / 2);
int steps = sliderTicks / 200;
if ( steps <= 0 )
steps = 1;
setSingleStep(steps);
setPageStep(sliderTicks);
int tick = mapToTick(min + (max - min) / 2);
if ( isInverted() )
tick = d_baseTicks - tick;
setSliderPosition(tick);
blockSignals(false);
}
示例6: setSliderPosition
void Knob::updatePosition(int val)
{
setSliderPosition(val);
setToolTip(QString::number(val));
update();
emit sliderMoved(val);
}
示例7: Q_D
void DSlider::mouseMoveEvent(QMouseEvent *event)
{
QAbstractSlider::mouseMoveEvent(event);
Q_D(DSlider);
if(d->mousePressed) {
int newPosition = d->pixelPosToRangeValue(d->pick(event->pos()) - d->clickOffset);
setSliderPosition(newPosition);
emit sliderMoved(newPosition);
}
if (!d->m_hoverShowValue) {
return;
}
QPoint pos = event->pos();
QRect rect(d->getScalePosition(value()) - CustomDrawingLeftPadding, 10, 20, 20);
if (d->m_handleHovering) {
d->m_handleHovering = rect.contains(pos);
} else {
d->m_handleHovering = rect.contains(pos);
if (d->m_handleHovering) {
d->m_hoverTimout = false;
if (d->m_hoverShowValueInterval > 0) {
d->m_hoverTimer.start(d->m_hoverShowValueInterval);
}
}
}
update();
}
示例8: switch
void HudSlider::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
if (!d->hasValidRange()) {
return;
}
const int pos = d->positionForX(event->pos().x());
if (d->mHandleRect.contains(event->pos())) {
switch (event->button()) {
case Qt::LeftButton:
d->mIsDown = true;
break;
case Qt::MiddleButton:
setSliderPosition(pos);
triggerAction(QAbstractSlider::SliderMove);
break;
default:
break;
}
} else {
d->mRepeatX = event->pos().x();
d->mRepeatAction = pos < d->mSliderPosition
? QAbstractSlider::SliderPageStepSub
: QAbstractSlider::SliderPageStepAdd;
doRepeatAction(FIRST_REPEAT_DELAY);
}
update();
}
示例9: Q_D
/*!
\reimp
*/
void QScrollBar::mousePressEvent(QMouseEvent *e)
{
Q_D(QScrollBar);
if (d->repeatActionTimer.isActive())
d->stopRepeatAction();
bool midButtonAbsPos = style()->styleHint(QStyle::SH_ScrollBar_MiddleClickAbsolutePosition,
0, this);
QStyleOptionSlider opt;
initStyleOption(&opt);
if (d->maximum == d->minimum // no range
|| (e->buttons() & (~e->button())) // another button was clicked before
|| !(e->button() == Qt::LeftButton || (midButtonAbsPos && e->button() == Qt::MidButton)))
return;
d->pressedControl = style()->hitTestComplexControl(QStyle::CC_ScrollBar, &opt, e->pos(), this);
d->pointerOutsidePressedControl = false;
QRect sr = style()->subControlRect(QStyle::CC_ScrollBar, &opt,
QStyle::SC_ScrollBarSlider, this);
QPoint click = e->pos();
QPoint pressValue = click - sr.center() + sr.topLeft();
d->pressValue = d->orientation == Qt::Horizontal ? d->pixelPosToRangeValue(pressValue.x()) :
d->pixelPosToRangeValue(pressValue.y());
if (d->pressedControl == QStyle::SC_ScrollBarSlider) {
d->clickOffset = HORIZONTAL ? (click.x()-sr.x()) : (click.y()-sr.y());
d->snapBackPosition = d->position;
}
if ((d->pressedControl == QStyle::SC_ScrollBarAddPage
|| d->pressedControl == QStyle::SC_ScrollBarSubPage)
&& ((midButtonAbsPos && e->button() == Qt::MidButton)
|| (style()->styleHint(QStyle::SH_ScrollBar_LeftClickAbsolutePosition, &opt, this)
&& e->button() == Qt::LeftButton))) {
int sliderLength = HORIZONTAL ? sr.width() : sr.height();
setSliderPosition(d->pixelPosToRangeValue((HORIZONTAL ? e->pos().x()
: e->pos().y()) - sliderLength / 2));
d->pressedControl = QStyle::SC_ScrollBarSlider;
d->clickOffset = sliderLength / 2;
}
const int initialDelay = 500; // default threshold
QElapsedTimer time;
time.start();
d->activateControl(d->pressedControl, initialDelay);
repaint(style()->subControlRect(QStyle::CC_ScrollBar, &opt, d->pressedControl, this));
if (time.elapsed() >= initialDelay && d->repeatActionTimer.isActive()) {
// It took more than 500ms (the initial timer delay) to process
// the control activation and repaint(), we therefore need
// to restart the timer in case we have a pending mouse release event;
// otherwise we'll get a timer event right before the release event,
// causing the repeat action to be invoked twice on a single mouse click.
// 50ms is the default repeat time (see activateControl/setRepeatAction).
d->repeatActionTimer.start(50, this);
}
if (d->pressedControl == QStyle::SC_ScrollBarSlider)
setSliderDown(true);
}
示例10: QSlider
QVolumeSlider::QVolumeSlider(QWidget *parent) :
QSlider(parent)
{
setRange(0,1000);
connect(this, SIGNAL(valueChanged(int)), this, SLOT(updateVolume(int)));
setValue(1000);
setSliderPosition(1000);
}
示例11: Q_D
/*!
\reimp
*/
void QSlider::mousePressEvent(QMouseEvent *ev)
{
Q_D(QSlider);
if (d->maximum == d->minimum || (ev->buttons() ^ ev->button())) {
ev->ignore();
return;
}
#ifdef QT_KEYPAD_NAVIGATION
if (QApplication::keypadNavigationEnabled())
setEditFocus(true);
#endif
ev->accept();
if ((ev->button() & style()->styleHint(QStyle::SH_Slider_AbsoluteSetButtons)) == ev->button()) {
QStyleOptionSlider opt;
initStyleOption(&opt);
const QRect sliderRect = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
const QPoint center = sliderRect.center() - sliderRect.topLeft();
// to take half of the slider off for the setSliderPosition call we use the center - topLeft
setSliderPosition(d->pixelPosToRangeValue(d->pick(ev->pos() - center)));
triggerAction(SliderMove);
setRepeatAction(SliderNoAction);
d->pressedControl = QStyle::SC_SliderHandle;
update();
} else if ((ev->button() & style()->styleHint(QStyle::SH_Slider_PageSetButtons)) == ev->button()) {
QStyleOptionSlider opt;
initStyleOption(&opt);
d->pressedControl = style()->hitTestComplexControl(QStyle::CC_Slider,
&opt, ev->pos(), this);
SliderAction action = SliderNoAction;
if (d->pressedControl == QStyle::SC_SliderGroove) {
const QRect sliderRect = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
int pressValue = d->pixelPosToRangeValue(d->pick(ev->pos() - sliderRect.center() + sliderRect.topLeft()));
d->pressValue = pressValue;
if (pressValue > d->value)
action = SliderPageStepAdd;
else if (pressValue < d->value)
action = SliderPageStepSub;
if (action) {
triggerAction(action);
setRepeatAction(action);
}
}
} else {
ev->ignore();
return;
}
if (d->pressedControl == QStyle::SC_SliderHandle) {
QStyleOptionSlider opt;
initStyleOption(&opt);
setRepeatAction(SliderNoAction);
QRect sr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
d->clickOffset = d->pick(ev->pos() - sr.topLeft());
update(sr);
setSliderDown(true);
}
}
示例12: signalsBlocked
void QScaleSlider::SetPosWithBlockedSignals(double pos)
{
bool const b = signalsBlocked();
blockSignals(true);
setSliderPosition(my::rounds(pos * m_factor));
blockSignals(b);
}
示例13: setSliderPosition
void Slider::mousePressEvent(QMouseEvent *e)
{
int handlePos = QStyle::sliderPositionFromValue(minimum(),maximum(),sliderPosition(),width());
if(handlePos<e->pos().x()-5||handlePos>e->pos().x()+5)
{
int position = QStyle::sliderValueFromPosition(minimum(),maximum(),e->pos().x(),width());
setSliderPosition(position);
emit sliderMoved(sliderPosition());
}
}
示例14: maximum
void ThumbSlider::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() && Qt::LeftButton)
{
int value = QStyle::sliderValueFromPosition(minimum(), maximum(), event->x(), width(), false);
setSliderPosition(value);
triggerAction(SliderMove);
}
}
示例15: qBound
void HudSlider::setValue(int value)
{
value = qBound(d->mMin, value, d->mMax);
if (value != d->mValue) {
d->mValue = value;
setSliderPosition(value);
update();
valueChanged(d->mValue);
}
}