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

📄 qabstractscrollarea.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*!    Sets the margins around the scrolling area to \a left, \a top, \a    right and \a bottom. This is useful for applications such as    spreadsheets with "locked" rows and columns. The marginal space is    is left blank; put widgets in the unused area.    By default all margins are zero.*/void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom){    Q_D(QAbstractScrollArea);    d->left = left;    d->top = top;    d->right = right;    d->bottom = bottom;    d->layoutChildren();}/*!    This is the main event handler for the QAbstractScrollArea widget (\e not    the scrolling area viewport()). The event is passed in \a e.*/bool QAbstractScrollArea::event(QEvent *e){    Q_D(QAbstractScrollArea);    switch (e->type()) {    case QEvent::AcceptDropsChange:        d->viewport->setAcceptDrops(acceptDrops());        break;    case QEvent::MouseTrackingChange:        d->viewport->setMouseTracking(hasMouseTracking());        break;    case QEvent::Resize:            d->layoutChildren();            break;    case QEvent::Paint:        QFrame::paintEvent((QPaintEvent*)e);        break;    case QEvent::ContextMenu:        if (static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard)           return QFrame::event(e);        e->ignore();        break;    case QEvent::MouseButtonPress:    case QEvent::MouseButtonRelease:    case QEvent::MouseButtonDblClick:    case QEvent::MouseMove:    case QEvent::Wheel:#ifndef QT_NO_DRAGANDDROP    case QEvent::Drop:    case QEvent::DragEnter:    case QEvent::DragMove:    case QEvent::DragLeave:#endif        return false;    case QEvent::StyleChange:        d->layoutChildren();        // fall through    default:        return QFrame::event(e);    }    return true;}/*!  The main event handler for the scrolling area (the viewport()  widget). It handles event \a e.  You can reimplement this function in a subclass, but we recommend  using one of the specialized event handlers instead.  Specialised handlers for viewport events are: paintEvent(),  mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(),  mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(),  dragLeaveEvent(), dropEvent(), contextMenuEvent(), and  resizeEvent(). */bool QAbstractScrollArea::viewportEvent(QEvent *e){    Q_D(QAbstractScrollArea);    switch (e->type()) {    case QEvent::Resize:    case QEvent::Paint:    case QEvent::MouseButtonPress:    case QEvent::MouseButtonRelease:    case QEvent::MouseButtonDblClick:    case QEvent::MouseMove:    case QEvent::ContextMenu:#ifndef QT_NO_DRAGANDDROP    case QEvent::Drop:    case QEvent::DragEnter:    case QEvent::DragMove:    case QEvent::DragLeave:#endif        return QFrame::event(e);    case QEvent::LayoutRequest:        return event(e);#ifndef QT_NO_WHEELEVENT    case QEvent::Wheel:        if (!QFrame::event(e) || !e->isAccepted()) {            if (static_cast<QWheelEvent*>(e)->orientation() == Qt::Horizontal)                return QApplication::sendEvent(d->hbar, e);            return QApplication::sendEvent(d->vbar, e);        }#endif    default:        break;    }    return static_cast<QAbstractScrollAreaViewport*>(d->viewport)->QWidget::event(e);}/*!    \fn void QAbstractScrollArea::resizeEvent(QResizeEvent *event)    This event handler can be reimplemented in a subclass to receive    resize events (passed in \a event), for the viewport() widget.    When resizeEvent() is called, the viewport already has its new    geometry: Its new size is accessible through the    QResizeEvent::size() function, and the old size through    QResizeEvent::oldSize().    \sa QWidget::resizeEvent() */void QAbstractScrollArea::resizeEvent(QResizeEvent *){}/*!    \fn void QAbstractScrollArea::paintEvent(QPaintEvent *event)    This event handler can be reimplemented in a subclass to receive    paint events (passed in \a event), for the viewport() widget.    Note: If you open a painter, make sure to open it on the    viewport().    \sa QWidget::paintEvent()*/void QAbstractScrollArea::paintEvent(QPaintEvent*){}/*!    This event handler can be reimplemented in a subclass to receive    mouse press events for the viewport() widget. The event is passed    in \a e.    \sa QWidget::mousePressEvent()*/void QAbstractScrollArea::mousePressEvent(QMouseEvent *e){    e->ignore();}/*!    This event handler can be reimplemented in a subclass to receive    mouse release events for the viewport() widget. The event is    passed in \a e.    \sa QWidget::mouseReleaseEvent()*/void QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e){    e->ignore();}/*!    This event handler can be reimplemented in a subclass to receive    mouse double click events for the viewport() widget. The event is    passed in \a e.    \sa QWidget::mouseDoubleClickEvent()*/void QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e){    e->ignore();}/*!    This event handler can be reimplemented in a subclass to receive    mouse move events for the viewport() widget. The event is passed    in \a e.    \sa QWidget::mouseMoveEvent()*/void QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e){    e->ignore();}/*!    This event handler can be reimplemented in a subclass to receive    wheel events for the viewport() widget. The event is passed in \a    e.    \sa QWidget::wheelEvent()*/#ifndef QT_NO_WHEELEVENTvoid QAbstractScrollArea::wheelEvent(QWheelEvent *e){    e->ignore();}#endif/*!    This event handler can be reimplemented in a subclass to receive    context menu events for the viewport() widget. The event is passed    in \a e.    \sa QWidget::contextMenuEvent()*/void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e){    e->ignore();}/*!    This function is called with key event \a e when key presses    occur. It handles PageUp, PageDown, Up, Down, Left, and Right, and    ignores all other key presses.*/void QAbstractScrollArea::keyPressEvent(QKeyEvent * e){    Q_D(QAbstractScrollArea);    switch (e->key()) {    case Qt::Key_PageUp:        d->vbar->triggerAction(QScrollBar::SliderPageStepSub);        break;    case Qt::Key_PageDown:        d->vbar->triggerAction(QScrollBar::SliderPageStepAdd);        break;    case Qt::Key_Up:        d->vbar->triggerAction(QScrollBar::SliderSingleStepSub);        break;    case Qt::Key_Down:        d->vbar->triggerAction(QScrollBar::SliderSingleStepAdd);        break;    case Qt::Key_Left:        d->hbar->triggerAction(QScrollBar::SliderSingleStepSub);        break;    case Qt::Key_Right:        d->hbar->triggerAction(QScrollBar::SliderSingleStepAdd);        break;    default:        e->ignore();        return;    }    e->accept();}#ifndef QT_NO_DRAGANDDROP/*!    \fn void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)    This event handler can be reimplemented in a subclass to receive    drag enter events (passed in \a event), for the viewport() widget.    \sa QWidget::dragEnterEvent()*/void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *){}/*!    \fn void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)    This event handler can be reimplemented in a subclass to receive    drag move events (passed in \a event), for the viewport() widget.    \sa QWidget::dragMoveEvent()*/void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *){}/*!    \fn void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)    This event handler can be reimplemented in a subclass to receive    drag leave events (passed in \a event), for the viewport() widget.    \sa QWidget::dragLeaveEvent()*/void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *){}/*!    \fn void QAbstractScrollArea::dropEvent(QDropEvent *event)    This event handler can be reimplemented in a subclass to receive    drop events (passed in \a event), for the viewport() widget.    \sa QWidget::dropEvent()*/void QAbstractScrollArea::dropEvent(QDropEvent *){}#endif/*!    This virtual handler is called when the scroll bars are moved by    \a dx, \a dy, and consequently the viewport's contents should be    scrolled accordingly.    The default implementation simply calls update() on the entire    viewport(), subclasses can reimplement this handler for    optimization purposes, or - like QScrollArea - to move a contents    widget. The paramters \a dx and \a dy are there for convenience,    so that the class knows how much should be scrolled (useful    e.g. when doing pixel-shifts). You may just as well ignore these    values and scroll directly to the position the scroll bars    indicate.    Calling this function in order to scroll programmatically is an    error, use the scroll bars instead (e.g. by calling    QScrollBar::setValue() directly).*/void QAbstractScrollArea::scrollContentsBy(int, int){    viewport()->update();}void QAbstractScrollAreaPrivate::_q_hslide(int x){    Q_Q(QAbstractScrollArea);    int dx = xoffset - x;    xoffset = x;    q->scrollContentsBy(dx, 0);}void QAbstractScrollAreaPrivate::_q_vslide(int y){    Q_Q(QAbstractScrollArea);    int dy = yoffset - y;    yoffset = y;    q->scrollContentsBy(0, dy);}void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(){    layoutChildren();}/*!    \reimp*/QSize QAbstractScrollArea::minimumSizeHint() const{    Q_D(const QAbstractScrollArea);    int hsbExt = d->hbar->sizeHint().height();    int vsbExt = d->vbar->sizeHint().width();    int f = 2 * d->frameWidth;    return QSize(3*vsbExt + f, 3*hsbExt + f);}/*!    \reimp*/QSize QAbstractScrollArea::sizeHint() const{    return QSize(256, 192);#if 0    Q_D(const QAbstractScrollArea);    int h = qMax(10, fontMetrics().height());    int f = 2 * d->frameWidth;    return QSize((6 * h) + f, (4 * h) + f);#endif}#include "moc_qabstractscrollarea.cpp"#include "qabstractscrollarea.moc"#endif // QT_NO_SCROLLAREA

⌨️ 快捷键说明

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