⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rangecontrols.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*! Returns the scroll bar. */QScrollBar *QAccessibleScrollBar::scrollBar() const{    return qobject_cast<QScrollBar*>(object());}/*! \reimp */QRect QAccessibleScrollBar::rect(int child) const{    if (!scrollBar()->isVisible())        return QRect();    QStyle::SubControl subControl;    switch (child) {    case LineUp:        subControl = QStyle ::SC_ScrollBarSubLine;        break;    case PageUp:        subControl = QStyle::SC_ScrollBarSubPage;        break;    case Position:        subControl = QStyle::SC_ScrollBarSlider;        break;    case PageDown:        subControl = QStyle::SC_ScrollBarAddPage;        break;    case LineDown:        subControl = QStyle::SC_ScrollBarAddLine;        break;    default:        return QAccessibleAbstractSlider::rect(child);    }    const QStyleOptionSlider option = qt_qscrollbarStyleOption(scrollBar());    const QRect rect = scrollBar()->style()->subControlRect(QStyle::CC_ScrollBar, &option,                                                       subControl, scrollBar());    const QPoint tp = scrollBar()->mapToGlobal(QPoint(0,0));    return QRect(tp.x() + rect.x(), tp.y() + rect.y(), rect.width(), rect.height());}/*! \reimp */int QAccessibleScrollBar::childCount() const{    if (!scrollBar()->isVisible())        return 0;    return LineDown;}/*! \reimp */QString QAccessibleScrollBar::text(Text t, int child) const{    if (!scrollBar()->isVisible())        return QString();    switch (t) {    case Value:        if (!child || child == Position)            return QString::number(scrollBar()->value());        return QString();    case Name:        switch (child) {        case LineUp:            return QScrollBar::tr("Line up");        case PageUp:            return QScrollBar::tr("Page up");        case Position:            return QScrollBar::tr("Position");        case PageDown:            return QScrollBar::tr("Page down");        case LineDown:            return QScrollBar::tr("Line down");        }        break;    default:        break;    }    return QAccessibleAbstractSlider::text(t, child);}/*! \reimp */QAccessible::Role QAccessibleScrollBar::role(int child) const{    switch (child) {    case LineUp:    case PageUp:    case PageDown:    case LineDown:        return PushButton;    case Position:        return Indicator;    default:        return ScrollBar;    }}/*! \reimp */QAccessible::State QAccessibleScrollBar::state(int child) const{    const State parentState = QAccessibleAbstractSlider::state(0);    if (child == 0)        return parentState;    // Inherit the Invisible state from parent.    State state = parentState & QAccessible::Invisible;    // Disable left/right if we are at the minimum/maximum.    const QScrollBar * const scrollBar = QAccessibleScrollBar::scrollBar();    switch (child) {    case LineUp:    case PageUp:        if (scrollBar->value() <= scrollBar->minimum())            state |= Unavailable;        break;    case LineDown:    case PageDown:        if (scrollBar->value() >= scrollBar->maximum())            state |= Unavailable;        break;    case Position:    default:        break;    }    return state;}#endif // QT_NO_SCROLLBAR#ifndef QT_NO_SLIDER/*!  \class QAccessibleSlider qaccessiblewidget.h  \brief The QAccessibleSlider class implements the QAccessibleInterface for sliders.  \internal  \ingroup accessibility*//*!    \enum QAccessibleSlider::SliderElements    This enum identifies the components of the slider.    \value SliderSelf The slider as a whole.    \value PageLeft The area to the left of the position.    \value Position The position indicator.    \value PageRight The area to the right of the position.*//*!  Constructs a QAccessibleScrollBar object for \a w.  \a name is propagated to the QAccessibleWidgetEx constructor.*/QAccessibleSlider::QAccessibleSlider(QWidget *w): QAccessibleAbstractSlider(w){    Q_ASSERT(slider());    addControllingSignal(QLatin1String("valueChanged(int)"));}/*! Returns the slider. */QSlider *QAccessibleSlider::slider() const{    return qobject_cast<QSlider*>(object());}/*! \reimp */QRect QAccessibleSlider::rect(int child) const{    QRect rect;    if (!slider()->isVisible())        return rect;    const QStyleOptionSlider option = qt_qsliderStyleOption(slider());    QRect srect = slider()->style()->subControlRect(QStyle::CC_Slider, &option,                                                    QStyle::SC_SliderHandle, slider());    switch (child) {    case PageLeft:        if (slider()->orientation() == Qt::Vertical)            rect = QRect(0, 0, slider()->width(), srect.y());        else            rect = QRect(0, 0, srect.x(), slider()->height());        break;    case Position:        rect = srect;        break;    case PageRight:        if (slider()->orientation() == Qt::Vertical)            rect = QRect(0, srect.y() + srect.height(), slider()->width(), slider()->height()- srect.y() - srect.height());        else            rect = QRect(srect.x() + srect.width(), 0, slider()->width() - srect.x() - srect.width(), slider()->height());        break;    default:        return QAccessibleAbstractSlider::rect(child);    }    QPoint tp = slider()->mapToGlobal(QPoint(0,0));    return QRect(tp.x() + rect.x(), tp.y() + rect.y(), rect.width(), rect.height());}/*! \reimp */int QAccessibleSlider::childCount() const{    if (!slider()->isVisible())        return 0;    return PageRight;}/*! \reimp */QString QAccessibleSlider::text(Text t, int child) const{    if (!slider()->isVisible())        return QString();    switch (t) {    case Value:        if (!child || child == 2)            return QString::number(slider()->value());        return QString();    case Name:        switch (child) {        case PageLeft:            return slider()->orientation() == Qt::Horizontal ?                QSlider::tr("Page left") : QSlider::tr("Page up");        case Position:            return QSlider::tr("Position");        case PageRight:            return slider()->orientation() == Qt::Horizontal ?                QSlider::tr("Page right") : QSlider::tr("Page down");        }        break;    default:        break;    }    return QAccessibleAbstractSlider::text(t, child);}/*! \reimp */QAccessible::Role QAccessibleSlider::role(int child) const{    switch (child) {    case PageLeft:    case PageRight:        return PushButton;    case Position:        return Indicator;    default:        return Slider;    }}/*! \reimp */QAccessible::State QAccessibleSlider::state(int child) const{    const State parentState = QAccessibleAbstractSlider::state(0);    if (child == 0)        return parentState;    // Inherit the Invisible state from parent.    State state = parentState & QAccessible::Invisible;    // Disable left/right if we are at the minimum/maximum.    const QSlider * const slider = QAccessibleSlider::slider();    switch (child) {    case PageLeft:        if (slider->value() <= slider->minimum())            state |= Unavailable;        break;    case PageRight:        if (slider->value() >= slider->maximum())            state |= Unavailable;        break;    case Position:    default:        break;    }    return state;}/*!    \fn int QAccessibleSlider::defaultAction(int child) const    Returns the default action for the given \a child. The base class    implementation returns 0.*/int QAccessibleSlider::defaultAction(int /*child*/) const{/*    switch (child) {    case SliderSelf:        return SetFocus;    case PageLeft:        return Press;    case PageRight:        return Press;    }*/    return 0;}/*! \internal */QString QAccessibleSlider::actionText(int /*action*/, Text /*t*/, int /*child*/) const{    return QString(QLatin1String(""));}QAccessibleAbstractSlider::QAccessibleAbstractSlider(QWidget *w, Role r)    : QAccessibleWidgetEx(w, r){    Q_ASSERT(qobject_cast<QAbstractSlider *>(w));}QVariant QAccessibleAbstractSlider::invokeMethodEx(Method method, int child, const QVariantList &params){    switch (method) {    case ListSupportedMethods: {        QSet<QAccessible::Method> set;        set << ListSupportedMethods;        return qVariantFromValue(set | qvariant_cast<QSet<QAccessible::Method> >(                    QAccessibleWidgetEx::invokeMethodEx(method, child, params)));    }    default:        return QAccessibleWidgetEx::invokeMethodEx(method, child, params);    }}QVariant QAccessibleAbstractSlider::currentValue(){    return abstractSlider()->value();}void QAccessibleAbstractSlider::setCurrentValue(const QVariant &value){    abstractSlider()->setValue(value.toInt());}QVariant QAccessibleAbstractSlider::maximumValue(){    return abstractSlider()->maximum();}QVariant QAccessibleAbstractSlider::minimumValue(){    return abstractSlider()->minimum();}QAbstractSlider *QAccessibleAbstractSlider::abstractSlider() const{    return static_cast<QAbstractSlider *>(object());}#endif // QT_NO_SLIDER#ifndef QT_NO_DIAL// ======================================= QAccessibleDial ======================================QAccessibleDial::QAccessibleDial(QWidget *widget)    : QAccessibleWidgetEx(widget, Dial){    Q_ASSERT(qobject_cast<QDial *>(widget));    addControllingSignal(QLatin1String("valueChanged(int)"));}QRect QAccessibleDial::rect(int child) const{    QRect rect;    if (!dial()->isVisible())        return rect;    switch (child) {    case Self:        return QAccessibleWidgetEx::rect(child);    case SpeedoMeter: {        // Mixture from qcommonstyle.cpp (focus rect).        int width = dial()->width();        int height = dial()->height();        qreal radius = qMin(width, height) / 2.0;        qreal delta = radius / 6.0;        qreal dx = delta + (width - 2 * radius) / 2.0;        qreal dy = delta + (height - 2 * radius) / 2.0;        rect = QRect(int(dx), int(dy), int(radius * 2 - 2 * delta), int(radius * 2 - 2 * delta));        if (dial()->notchesVisible()) {            rect.translate(int(-radius / 6), int(-radius / 6));            rect.setWidth(rect.width() + int(radius / 3));            rect.setHeight(rect.height() + int(radius / 3));        }        break;    }    case SliderHandle: {        // Mixture from qcommonstyle.cpp and qdial.cpp.        int sliderValue = !dial()->invertedAppearance() ? dial()->value()                                                        : (dial()->maximum() - dial()->value());        qreal angle = 0;        if (dial()->maximum() == dial()->minimum()) {            angle = Q_PI / 2;        } else if (dial()->wrapping()) {            angle = Q_PI * 3 / 2 - (sliderValue - dial()->minimum()) * 2 * Q_PI                    / (dial()->maximum() - dial()->minimum());        } else {            angle = (Q_PI * 8 - (sliderValue - dial()->minimum()) * 10 * Q_PI                    / (dial()->maximum() - dial()->minimum())) / 6;        }        int width = dial()->rect().width();        int height = dial()->rect().height();        int radius = qMin(width, height) / 2;        int xc = width / 2;        int yc = height / 2;        int bigLineSize = radius / 6;        if (bigLineSize < 4)            bigLineSize = 4;        if (bigLineSize > radius / 2)            bigLineSize = radius / 2;        int len = radius - bigLineSize - 5;        if (len < 5)            len = 5;        int back = len / 2;        QPolygonF arrow(3);        arrow[0] = QPointF(0.5 + xc + len * qCos(angle),                           0.5 + yc - len * qSin(angle));        arrow[1] = QPointF(0.5 + xc + back * qCos(angle + Q_PI * 5 / 6),                           0.5 + yc - back * qSin(angle + Q_PI * 5 / 6));        arrow[2] = QPointF(0.5 + xc + back * qCos(angle - Q_PI * 5 / 6),                           0.5 + yc - back * qSin(angle - Q_PI * 5 / 6));        rect = arrow.boundingRect().toRect();        break;    }    default:        return QRect();    }    QPoint globalPos = dial()->mapToGlobal(QPoint(0,0));    return QRect(globalPos.x() + rect.x(), globalPos.y() + rect.y(), rect.width(), rect.height());}int QAccessibleDial::childCount() const{    if (!dial()->isVisible())        return 0;    return SliderHandle;}QString QAccessibleDial::text(Text textType, int child) const{    if (!dial()->isVisible())        return QString();    if (textType == Value && child >= Self && child <= SliderHandle)        return QString::number(dial()->value());    if (textType == Name) {        switch (child) {        case Self:            if (!widget()->accessibleName().isEmpty())                return widget()->accessibleName();            return QDial::tr("QDial");        case SpeedoMeter:            return QDial::tr("SpeedoMeter");        case SliderHandle:            return QDial::tr("SliderHandle");        }    }    return QAccessibleWidgetEx::text(textType, child);}QAccessible::Role QAccessibleDial::role(int child) const{    if (child == SpeedoMeter)        return Slider;    else if (child == SliderHandle)        return Indicator;    return QAccessibleWidgetEx::role(child);}QAccessible::State QAccessibleDial::state(int child) const{    const State parentState = QAccessibleWidgetEx::state(0);    if (child == SliderHandle)        return parentState | HotTracked;    return parentState;}QVariant QAccessibleDial::invokeMethodEx(Method, int, const QVariantList &){    return QVariant();}QDial *QAccessibleDial::dial() const{    return static_cast<QDial*>(object());}#endif // QT_NO_DIAL#endif // QT_NO_ACCESSIBILITY

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -