QTableView 接口详情
Qt Widgets->C++ Classes->QTableView
Qt 5.12版本QTableView 接口详情(机翻)
属性
左上角角落按钮使能cornerButtonEnabled : bool
网格风格gridStyle : Qt::PenStyle
显示网格showGrid : bool
排序使能sortingEnabled : bool
自动换行wordWrap : bool
细节描述
QTableView类提供表视图默认model/view实现
QTableView实现了显示模型项的表视图。这个类用于提供以前由QTable类提供的标准表,但使用Qt的模型/视图体系结构提供的更灵活的方法。
QTableView类是模型/视图类之一,是Qt模型/视图框架的一部分。
QTableView实现了由QAbstractItemView类定义的接口,以允许它显示由QAbstractItemModel类派生的模型提供的数据。
导航
可以通过用鼠标单击单元格或使用箭头键来导航表中的单元格。因为QTableView默认启用tabKeyNavigation,你也可以点击Tab和Backtab从单元格移动到另一个单元格。
视觉外观
这个表有一个垂直标头,可以使用verticalHeader()函数获得,还有一个水平标头可以通过horizontalHeader()函数获得。表中每行的高度可以通过使用rowHeight()找到;类似地,可以使用columnWidth()找到列的宽度。由于这两个都是普通的小部件,因此可以使用它们的hide()函数隐藏它们中的任何一个。
可以使用hideRow()、hideColumn()、showRow()和showColumn()来隐藏和显示行和列。它们可以通过selectRow()和selectColumn()来选择。表格将根据showGrid属性显示一个网格。
表视图中显示的项与其他项视图中的项一样,使用标准委托进行呈现和编辑。但是,对于某些任务,有时能够在表中插入小部件是有用的。使用setIndexWidget()函数为特定索引设置小部件,然后使用indexWidget()进行检索。
默认情况下,表中的单元格不会展开以填充可用空间。可以通过拉伸最后一个标题部分,使单元格填充可用空间。使用horizontalHeader()或verticalHeader()访问相关的header,并设置header的stretchLastSection属性。要根据每一列或每一行的空间需求分配可用空间,请调用视图的resizeColumnsToContents()或resizeRowsToContents()函数。
坐标系
对于某些特殊形式的表,能够在行、列索引和小部件坐标之间进行转换是很有用的。rowAt()函数提供指定行的视图内的y坐标;行索引可用于通过rowViewportPosition()获取相应的y坐标。columnAt()和columnViewportPosition()函数提供x坐标和列索引之间的等效转换操作。
属性文档
角落按钮使能cornerButtonEnabled : bool
此属性保留是否启用左上角的按钮
如果此属性为true,则启用表视图左上角的按钮。单击此按钮将选择表视图中的所有单元格。默认情况下,此属性为true。
访问函数:
bool isCornerButtonEnabled() const
void setCornerButtonEnabled(bool enable)
网格风格gridStyle : Qt::PenStyle
此属性保存用于绘制网格的笔样式
这个属性保存绘制网格时使用的样式(参见showGrid)。
访问函数:
Qt::PenStyle gridStyle() const
void setGridStyle(Qt::PenStyle style)
显示网格showGrid : bool
此属性保留是否显示网格。如果此属性为真,则为表绘制网格;如果该属性为false,则不绘制网格。默认值为true。
访问函数:
bool showGrid() const
void setShowGrid(bool show)
排序使能sortingEnabled : bool
此属性保存是否启用排序。如果此属性为true,则对表启用排序。如果此属性为false,则不启用排序。默认值为false。注意:使用setSortingEnabled()将属性设置为true会立即触发对sortByColumn()的调用,其中包含当前排序部分和顺序。
访问函数:
bool isSortingEnabled() const
void setSortingEnabled(bool enable)
自动换行wordWrap : bool
此属性保存项目文本换行策略。如果此属性为true,则项目文本在必要的换行处换行;否则,它根本不被包装。默认情况下,此属性为true。
注意,即使启用了换行,单元格也不会展开以适合所有文本。省略号将根据当前的textElideMode插入。
访问函数:
bool wordWrap() const
void setWordWrap(bool on)
成员函数
QTableView::QTableView(QWidget *parent = nullptr)
构造一个表视图,其父视图表示数据。
See also QAbstractItemModel.
[virtual] QTableView::~QTableView()
销毁表视图。
void QTableView::clearSpans()
删除表视图中的所有行和列跨度
See also setSpan().
int QTableView::columnAt(int x) const
返回内容坐标中给定x坐标x所在的列。
注意:如果给定的坐标无效(没有列),此函数返回-1。
See also rowAt().
[protected slot] void QTableView::columnCountChanged(int oldCount, int newCount)
每当添加或删除列时,就调用这个槽。以前的列数由oldCount指定,新的列数由newCount指定。
[protected slot] void QTableView::columnMoved(int column, int oldIndex, int newIndex)
调用这个槽来更改表视图中给定列的索引。旧索引由oldIndex指定,新索引由newIndex指定。
AI为你提供母语级高精翻译
[protected slot] void QTableView::columnResized(int column, int oldWidth, int newWidth)
调用这个槽来更改给定列的宽度。旧宽度由oldWidth指定,新宽度由newWidth指定。
int QTableView::columnSpan(int row, int column) const
返回表元素在(行、列)处的列跨度。默认为1。
See also setSpan() and rowSpan().
int QTableView::columnViewportPosition(int column) const
返回给定列的内容坐标中的x坐标。
int QTableView::columnWidth(int column) const
返回给定列的宽度。
See also setColumnWidth(), resizeColumnToContents(), and rowHeight().
[override virtual protected] void QTableView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
从QAbstractItemView::currentChanged()重新实现。
[slot] void QTableView::hideColumn(int column)
隐藏给定的列。
See also showColumn() and hideRow().
[slot] void QTableView::hideRow(int row)
隐藏给定的行。
See also showRow() and hideColumn().
QHeaderView *QTableView::horizontalHeader() const
返回表视图的水平页眉。
See also setHorizontalHeader(), verticalHeader(), and QAbstractItemModel::headerData().
[override virtual protected] int QTableView::horizontalOffset() const
从QAbstractItemView::horizontalOffset()重新实现。返回表视图中项的水平偏移量。
注意,表视图使用水平表头部分位置来确定视图中列的位置。
See also verticalOffset().
[override virtual] QModelIndex QTableView::indexAt(const QPoint &pos) const
从QAbstractItemView::indexAt()重新实现。
返回模型项对应于表项在内容坐标位置pos处的索引位置。
bool QTableView::isColumnHidden(int column) const
如果给定的列是隐藏的,则返回true;否则返回false。
See also isRowHidden().
[override virtual protected] bool QTableView::isIndexHidden(const QModelIndex &index) const
从QAbstractItemView::isIndexHidden()重新实现。
bool QTableView::isRowHidden(int row) const
如果给定行是隐藏的,则返回true;否则返回false。
See also isColumnHidden().
[override virtual protected] QModelIndex QTableView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
从QAbstractItemView::moveCursor()重新实现。
使用修饰符提供的信息,根据给定的cursorAction移动光标。
See also QAbstractItemView::CursorAction.
[override virtual protected] void QTableView::paintEvent(QPaintEvent *event)
从QAbstractScrollArea::paintEvent()重新实现。
在收到给定的绘制事件时绘制表。
[slot] void QTableView::resizeColumnToContents(int column)
根据用于呈现列中每个项目的委托的大小提示,调整给定列的大小。
注意:只有可见的列才会被调整大小。重新实现sizeHintForColumn()来调整隐藏列的大小。
See also resizeColumnsToContents(),
sizeHintForColumn(),
QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeColumnsToContents()
根据用于呈现列中每个项的委托的大小提示调整所有列的大小。
See also resizeColumnToContents(), sizeHintForColumn(), and QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeRowToContents(int row)
根据用于呈现行中每个项的委托的大小提示,重新调整给定行的大小。
See also resizeRowsToContents(), sizeHintForRow(), and QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeRowsToContents()
根据用于呈现行中每个项的委托的大小提示调整所有行的大小。
See also resizeRowToContents(), sizeHintForRow(), and QHeaderView::resizeContentsPrecision().
int QTableView::rowAt(int y) const
返回给定的内容坐标中y坐标所在的行。
注意:如果给定的坐标无效(没有行),此函数返回-1。另请参见columnAt()。
[protected slot] void QTableView::rowCountChanged(int oldCount, int newCount)
每当添加或删除行时,就调用这个槽。以前的行数由oldCount指定,新的行数由newCount指定。
int QTableView::rowHeight(int row) const
返回给定行的高度。
See also setRowHeight(), resizeRowToContents(), and columnWidth().
[protected slot] void QTableView::rowMoved(int row, int oldIndex, int newIndex)
调用这个槽来更改表视图中给定行的索引。旧索引由oldIndex指定,新索引由newIndex指定。
See also columnMoved().
[protected slot] void QTableView::rowResized(int row, int oldHeight, int newHeight)
调用这个槽来更改给定行的高度。旧高度由oldHeight指定,新高度由newHeight指定。
See also columnResized().
int QTableView::rowSpan(int row, int column) const
返回表元素在(行、列)处的行跨度。默认为1。
See also setSpan() and columnSpan().
int QTableView::rowViewportPosition(int row) const
返回给定行的内容坐标中的y坐标。
[slot] void QTableView::selectColumn(int column)
如果当前的SelectionMode和SelectionBehavior允许选择列,则选择表视图中的给定列。
See also selectRow().
[slot] void QTableView::selectRow(int row)
如果当前的SelectionMode和SelectionBehavior允许选择行,则在表视图中选择给定的行。
See also selectColumn().
[override virtual protected] QModelIndexList QTableView::selectedIndexes() const
从QAbstractItemView:: selectedinindexes()重新实现。
[override virtual protected] void QTableView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
从QAbstractItemView::selectionChanged()重新实现。
void QTableView::setColumnHidden(int column, bool hide)
如果hide为true,则指定的列将被隐藏;否则就会显示出来。
See also isColumnHidden() and setRowHidden().
void QTableView::setColumnWidth(int column, int width)
将给定列的宽度设置为width。
See also columnWidth().
void QTableView::setHorizontalHeader(QHeaderView *header)
将要用于水平标题的小部件设置为header。
See also horizontalHeader() and setVerticalHeader().
[override virtual] void QTableView::setModel(QAbstractItemModel *model)
从QAbstractItemView::setModel()重新实现。
[override virtual] void QTableView::setRootIndex(const QModelIndex &index)
从QAbstractItemView::setRootIndex()重新实现。
void QTableView::setRowHeight(int row, int height)
将给定行的高度设置为height。
See also rowHeight().
void QTableView::setRowHidden(int row, bool hide)
如果hide为真,row将被隐藏,否则将显示。
See also isRowHidden() and setColumnHidden().
[override virtual protected] void QTableView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)
从QAbstractItemView::setSelection()重新实现。
Selects the items within the given rect and in accordance with the specified selection flags.
给定区域内的项设置指定的选择标志。
[override virtual] void QTableView::setSelectionModel(QItemSelectionModel *selectionModel)
从QAbstractItemView::setSelectionModel()重新实现。
void QTableView::setSortingEnabled(bool enable)
如果enable为true,则启用对表的排序,并立即使用当前排序部分和顺序触发对sortByColumn()的调用
注意:属性sortingEnabled的设置函数。
参见isSortingEnabled()
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)
将(行,列)处的表元素的跨度设置为(rowSpanCount, columnSpanCount)指定的行和列数。
void QTableView::setVerticalHeader(QHeaderView *header)
设置要用于垂直标题到标题的小部件。
See also verticalHeader() and setHorizontalHeader().
[slot] void QTableView::showColumn(int column)
显示给定的列。
See also hideColumn() and showRow().
[slot] void QTableView::showRow(int row)
显示给定的行。
See also hideRow() and showColumn().
[override virtual protected] int QTableView::sizeHintForColumn(int column) const
从QAbstractItemView::sizeHintForColumn()重新实现。
返回给定列宽度的大小提示,如果没有模型则返回-1。如果需要将给定列的宽度设置为固定值,请调用表格的horizontal header来设置QHeaderView::resizeSection()。
如果您在子类中重新实现此函数,请注意,当调用resizeColumnToContents()或QHeaderView::resizeSections()时将使用您返回的值。如果水平标头或项委托需要更大的列宽度,则将使用更大的列宽度。
See also QWidget::sizeHint, horizontalHeader(), and QHeaderView::resizeContentsPrecision().
[override virtual protected] int QTableView::sizeHintForRow(int row) const
从QAbstractItemView::sizeHintForRow()重新实现。
返回给定行高度的大小提示,如果没有模型则返回-1。
如果需要将给定行的高度设置为固定值,请用表的vertical header调用QHeaderView::resizeSection()。
果您在子类中重新实现此函数,请注意您返回的值仅在调用resizeRowToContents()时使用。 在这种情况下,如果垂直表头或项委托需要更大的行高,则将使用该宽度。
See also QWidget::sizeHint, verticalHeader(), and QHeaderView::resizeContentsPrecision().
void QTableView::sortByColumn(int column, Qt::SortOrder order)
根据给定列中的值按给定顺序对模型进行排序。
See also sortingEnabled.
[override virtual protected] void QTableView::timerEvent(QTimerEvent *event)
从QAbstractItemView::timerEvent()重新实现。
[override virtual protected] void QTableView::updateGeometries()
从QAbstractItemView::updateGeometries()重新实现。
QHeaderView *QTableView::verticalHeader() const
返回表视图的垂直标题。
See also setVerticalHeader(), horizontalHeader(), and QAbstractItemModel::headerData().
[override virtual protected] int QTableView::verticalOffset() const
从QAbstractItemView::verticalOffset()重新实现。
返回表视图中项的垂直偏移量。
Note that the table view uses the vertical header section positions to determine the positions of rows in the view.
注意,表视图使用垂直表头的部分位置来确定在视图中行的位置。
See also horizontalOffset().
[override virtual protected] QStyleOptionViewItem QTableView::viewOptions() const
从QAbstractItemView::viewOptions()重新实现。
[override virtual protected] QSize QTableView::viewportSizeHint() const
从QAbstractItemView::viewportSizeHint()重新实现。