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

📄 qtableview.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{    Q_D(const QTableView);    return d->horizontalHeader->sectionViewportPosition(column);}/*!    Returns the column in which the given x-coordinate, \a x, in contents    coordinates is located.    \sa rowAt()*/int QTableView::columnAt(int x) const{    Q_D(const QTableView);    return d->horizontalHeader->logicalIndexAt(x);}/*!    \since 4.1    Sets the width of the given \a column to be \a width.*/void QTableView::setColumnWidth(int column, int width){    Q_D(const QTableView);    d->horizontalHeader->resizeSection(column, width);}/*!    Returns the width of the given \a column.    \sa resizeColumnToContents(), rowHeight()*/int QTableView::columnWidth(int column) const{    Q_D(const QTableView);    return d->horizontalHeader->sectionSize(column);}/*!    Returns true if the given \a row is hidden; otherwise returns false.    \sa isColumnHidden()*/bool QTableView::isRowHidden(int row) const{    Q_D(const QTableView);    return d->verticalHeader->isSectionHidden(row);}/*!    If \a hide is true \a row will be hidden, otherwise it will be shown.    \sa setColumnHidden()*/void QTableView::setRowHidden(int row, bool hide){    Q_D(QTableView);    if (row < 0 || row >= d->verticalHeader->count())        return;    d->verticalHeader->setSectionHidden(row, hide);}/*!    Returns true if the given \a column is hidden; otherwise returns false.    \sa isRowHidden()*/bool QTableView::isColumnHidden(int column) const{    Q_D(const QTableView);    return d->horizontalHeader->isSectionHidden(column);}/*!  If \a hide is true the given \a column will be hidden; otherwise it  will be shown.  \sa setRowHidden()*/void QTableView::setColumnHidden(int column, bool hide){    Q_D(QTableView);    if (column < 0 || column >= d->horizontalHeader->count())        return;    d->horizontalHeader->setSectionHidden(column, hide);}/*!    \since 4.2    \property QTableView::sortingEnabled    \brief whether sorting is enabled    If this property is true, sorting is enabled for the table; if the    property is false, sorting is not enabled. The default value is false.    \sa sortByColumn()*/void QTableView::setSortingEnabled(bool enable){    Q_D(QTableView);    d->sortingEnabled = enable;    horizontalHeader()->setSortIndicatorShown(enable);    if (enable) {        disconnect(d->horizontalHeader, SIGNAL(sectionEntered(int)),                   this, SLOT(_q_selectColumn(int)));        disconnect(horizontalHeader(), SIGNAL(sectionPressed(int)),                   this, SLOT(selectColumn(int)));        connect(horizontalHeader(), SIGNAL(sectionClicked(int)),                this, SLOT(sortByColumn(int)));        sortByColumn(horizontalHeader()->sortIndicatorSection());    } else {        connect(d->horizontalHeader, SIGNAL(sectionEntered(int)),                this, SLOT(_q_selectColumn(int)));        connect(horizontalHeader(), SIGNAL(sectionPressed(int)),                this, SLOT(selectColumn(int)));        disconnect(horizontalHeader(), SIGNAL(sectionClicked(int)),                   this, SLOT(sortByColumn(int)));    }}bool QTableView::isSortingEnabled() const{    Q_D(const QTableView);    return d->sortingEnabled;}/*!    \property QTableView::showGrid    \brief whether the grid is shown    If this property is true a grid is drawn for the table; if the    property is false, no grid is drawn. The default value is true.*/bool QTableView::showGrid() const{    Q_D(const QTableView);    return d->showGrid;}void QTableView::setShowGrid(bool show){    Q_D(QTableView);    if (d->showGrid != show) {        d->showGrid = show;        d->viewport->update();    }}/*!  \property QTableView::gridStyle  \brief  the pen style used to draw the grid.  This property holds the style used when drawing the grid (see \l{showGrid}).*/Qt::PenStyle QTableView::gridStyle() const{    Q_D(const QTableView);    return d->gridStyle;}void QTableView::setGridStyle(Qt::PenStyle style){    Q_D(QTableView);    if (d->gridStyle != style) {        d->gridStyle = style;        d->viewport->update();    }}/*!    \property QTableView::wordWrap    \brief the item text word-wrapping policy    \since 4.3    If this property is true then the item text is wrapped where    necessary at word-breaks; otherwise it is not wrapped at all.    This property is true by default.*/void QTableView::setWordWrap(bool on){    Q_D(QTableView);    if (d->wrapItemText == on)        return;    d->wrapItemText = on;    QMetaObject::invokeMethod(d->verticalHeader, "resizeSections");    QMetaObject::invokeMethod(d->horizontalHeader, "resizeSections");}bool QTableView::wordWrap() const{    Q_D(const QTableView);    return d->wrapItemText;}/*!    \property QTableView::cornerButtonEnabled    \brief whether the button in the top-left corner is enabled    \since 4.3    If this property is true then button in the top-left corner    of the table view is enabled. Clicking on this button will    select all the cells in the table view.    This property is true by default.*/void QTableView::setCornerButtonEnabled(bool enable){    Q_D(QTableView);    d->cornerWidget->setEnabled(enable);}bool QTableView::isCornerButtonEnabled() const{    Q_D(const QTableView);    return d->cornerWidget->isEnabled();}/*!    \internal    Returns the rectangle on the viewport occupied by the given \a    index.    If the index is hidden in the view it will return a null QRect.*/QRect QTableView::visualRect(const QModelIndex &index) const{    Q_D(const QTableView);    if (!d->isIndexValid(index) || index.parent() != d->root || isIndexHidden(index) )        return QRect();    d->executePostedLayout();    if (d->hasSpans()) {        QTableViewPrivate::Span span = d->span(index.row(), index.column());        return d->visualSpanRect(span);    }    int rowp = rowViewportPosition(index.row());    int rowh = rowHeight(index.row());    int colp = columnViewportPosition(index.column());    int colw = columnWidth(index.column());    const int i = showGrid() ? 1 : 0;    return QRect(colp, rowp, colw - i, rowh - i);}/*!    \internal    Makes sure that the given \a item is visible in the table view,    scrolling if necessary.*/void QTableView::scrollTo(const QModelIndex &index, ScrollHint hint){    Q_D(QTableView);    // check if we really need to do anything    if (!d->isIndexValid(index)        || (d->model->parent(index) != d->root)        || isIndexHidden(index))        return;    QTableViewPrivate::Span span;    if (d->hasSpans())        span = d->span(index.row(), index.column());    // Adjust horizontal position    int viewportWidth = d->viewport->width();    int horizontalOffset = d->horizontalHeader->offset();    int horizontalPosition = d->horizontalHeader->sectionPosition(index.column());    int horizontalIndex = d->horizontalHeader->visualIndex(index.column());    int cellWidth = d->hasSpans()                    ? d->columnSpanWidth(index.column(), span.width())                    : d->horizontalHeader->sectionSize(index.column());    if (horizontalScrollMode() == QAbstractItemView::ScrollPerItem) {        bool positionAtLeft = (horizontalPosition - horizontalOffset < 0);        bool positionAtRight = (horizontalPosition - horizontalOffset + cellWidth > viewportWidth);        if (hint == PositionAtCenter || positionAtRight) {            int w = (hint == PositionAtCenter ? viewportWidth / 2 : viewportWidth);            int x = cellWidth;            while (horizontalIndex > 0) {                x += columnWidth(d->horizontalHeader->logicalIndex(horizontalIndex-1));                if (x > w)                    break;                --horizontalIndex;            }        }        if (positionAtRight || hint == PositionAtCenter || positionAtLeft) {            int hiddenSections = 0;            if (d->horizontalHeader->sectionsHidden()) {                for (int s = horizontalIndex; s >= 0; --s) {                    int column = d->horizontalHeader->logicalIndex(s);                    if (d->horizontalHeader->isSectionHidden(column))                        ++hiddenSections;                }            }            horizontalScrollBar()->setValue(horizontalIndex - hiddenSections);        }    } else { // ScrollPerPixel        if (hint == PositionAtCenter) {            horizontalScrollBar()->setValue(horizontalPosition - ((viewportWidth - cellWidth) / 2));        } else {            if (horizontalPosition - horizontalOffset < 0 || cellWidth > viewportWidth)                horizontalScrollBar()->setValue(horizontalPosition);            else if (horizontalPosition - horizontalOffset + cellWidth > viewportWidth)                horizontalScrollBar()->setValue(horizontalPosition - viewportWidth + cellWidth);        }    }    // Adjust vertical position    int viewportHeight = d->viewport->height();    int verticalOffset = d->verticalHeader->offset();    int verticalPosition = d->verticalHeader->sectionPosition(index.row());    int verticalIndex = d->verticalHeader->visualIndex(index.row());    int cellHeight = d->hasSpans()                     ? d->rowSpanHeight(index.row(), span.height())                     : d->verticalHeader->sectionSize(index.row());    if (verticalPosition - verticalOffset < 0 || cellHeight > viewportHeight) {        if (hint == EnsureVisible)            hint = PositionAtTop;    } else if (verticalPosition - verticalOffset + cellHeight > viewportHeight) {        if (hint == EnsureVisible)            hint = PositionAtBottom;    }    if (verticalScrollMode() == QAbstractItemView::ScrollPerItem) {        if (hint == PositionAtBottom || hint == PositionAtCenter) {            int h = (hint == PositionAtCenter ? viewportHeight / 2 : viewportHeight);            int y = cellHeight;            while (verticalIndex > 0) {                int row = d->verticalHeader->logicalIndex(verticalIndex - 1);                y += d->verticalHeader->sectionSize(row);                if (y > h)                    break;                --verticalIndex;            }        }        if (hint == PositionAtBottom || hint == PositionAtCenter || hint == PositionAtTop) {            int hiddenSections = 0;            if (d->verticalHeader->sectionsHidden()) {                for (int s = verticalIndex; s >= 0; --s) {                    int row = d->verticalHeader->logicalIndex(s);                    if (d->verticalHeader->isSectionHidden(row))                        ++hiddenSections;                }            }            verticalScrollBar()->setValue(verticalIndex - hiddenSections);        }    } else { // ScrollPerPixel        if (hint == PositionAtTop) {            verticalScrollBar()->setValue(verticalPosition);        } else if (hint == PositionAtBottom) {            verticalScrollBar()->setValue(verticalPosition - viewportHeight + cellHeight);        } else if (hint == PositionAtCenter) {            verticalScrollBar()->setValue(verticalPosition - ((viewportHeight - cellHeight) / 2));        }    }    d->setDirtyRegion(visualRect(index));}/*!    This slot is called to change the height of the given \a row. The    old height is specified by \a oldHeight, and the new height by \a    newHeight.    \sa columnRes

⌨️ 快捷键说明

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