QColumnView Class
QColumnView 类提供了一种列视图的模型/视图实现。更多内容...
| 头文件: | #include <QColumnView> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QAbstractItemView |
属性
(since 6.11)previewColumnVisible : bool- resizeGripsVisible : bool
公共函数
| QColumnView(QWidget *parent = nullptr) | |
| virtual | ~QColumnView() |
| QList<int> | columnWidths() const |
| bool | isPreviewColumnVisible() const |
| QWidget * | previewWidget() const |
| bool | resizeGripsVisible() const |
| void | setColumnWidths(const QList<int> &list) |
| void | setPreviewColumnVisible(bool visible) |
| void | setPreviewWidget(QWidget *widget) |
| void | setResizeGripsVisible(bool visible) |
重新实现的公共函数
| virtual QModelIndex | indexAt(const QPoint &point) const override |
| virtual void | scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override |
| virtual void | selectAll() override |
| virtual void | setModel(QAbstractItemModel *model) override |
| virtual void | setRootIndex(const QModelIndex &index) override |
| virtual void | setSelectionModel(QItemSelectionModel *newSelectionModel) override |
| virtual QSize | sizeHint() const override |
| virtual QRect | visualRect(const QModelIndex &index) const override |
信号
| void | updatePreviewWidget(const QModelIndex &index) |
受保护函数
| virtual QAbstractItemView * | createColumn(const QModelIndex &index) |
| void | initializeColumn(QAbstractItemView *column) const |
重新实现的受保护函数
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| virtual int | horizontalOffset() const override |
| virtual bool | isIndexHidden(const QModelIndex &index) const override |
| virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | rowsInserted(const QModelIndex &parent, int start, int end) override |
| virtual void | scrollContentsBy(int dx, int dy) override |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override |
| virtual int | verticalOffset() const override |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const override |
详细说明
QColumnView 将模型显示在多个 QListView 中,每个树中的层次结构对应一个 QListView。这有时被称为级联列表。
QColumnView 类是模型/视图类之一,属于 Qt的模型/视图框架。
QColumnView 实现了由QAbstractItemView 类定义的接口,从而能够显示由继承自QAbstractItemModel 类的模型提供的数据。

另请参阅 “模型/视图编程”。
属性文档
[since 6.11] previewColumnVisible : bool
该属性控制预览列是否可见
默认情况下,visible 设置为true
该枚举类型在 Qt 6.11 中引入。
访问函数:
| bool | isPreviewColumnVisible() const |
| void | setPreviewColumnVisible(bool visible) |
resizeGripsVisible : bool
该属性用于指定列表视图是否显示调整大小控点
默认情况下,visible 设置为 true
访问函数:
| bool | resizeGripsVisible() const |
| void | setResizeGripsVisible(bool visible) |
另请参阅 setRootIndex()。
成员函数文档
[explicit] QColumnView::QColumnView(QWidget *parent = nullptr)
构建一个带有parent 的列视图,用于表示模型的数据。使用setModel()来设置模型。
另请参阅 QAbstractItemModel 。
[virtual noexcept] QColumnView::~QColumnView()
删除该列视图。
QList<int> QColumnView::columnWidths() const
返回一个列表,其中包含该视图中所有列的宽度。
另请参阅 setColumnWidths()。
[virtual protected] QAbstractItemView *QColumnView::createColumn(const QModelIndex &index)
若要在选择项目时为最后一列使用自定义小部件,请重载此函数并返回一个小部件。index 是将分配给视图的根索引。
返回新的视图。QColumnView 将自动获取该小部件的所有权。
另请参阅 setPreviewWidget()。
[override virtual protected] void QColumnView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
重写了:QAbstractItemView::currentChanged (const QModelIndex ¤t, const QModelIndex &previous)。
[override virtual protected] int QColumnView::horizontalOffset() const
重新实现了:QAbstractItemView::horizontalOffset() const。
[override virtual] QModelIndex QColumnView::indexAt(const QPoint &point) const
重写了:QAbstractItemView::indexAt(const QPoint &point) const。
[protected] void QColumnView::initializeColumn(QAbstractItemView *column) const
复制列视图的行为和选项,并将它们应用到column 中,例如iconSize()、textElideMode()和alternatingRowColors()。在重写createColumn()时,这可能会很有用。
另请参阅 createColumn()。
[override virtual protected] bool QColumnView::isIndexHidden(const QModelIndex &index) const
重写了:QAbstractItemView::isIndexHidden(const QModelIndex &index) const。
[override virtual protected] QModelIndex QColumnView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
重写了:QAbstractItemView::moveCursor (QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)。
向左移动应跳转到父节点索引;向右移动应跳转到子节点索引,若无子节点则向下移动
QWidget *QColumnView::previewWidget() const
返回预览控件,如果不存在则返回nullptr 。
另请参阅 setPreviewWidget() 和updatePreviewWidget()。
[override virtual protected] void QColumnView::resizeEvent(QResizeEvent *event)
重写了:QAbstractItemView::resizeEvent(QResizeEvent *event)。
[override virtual protected] void QColumnView::rowsInserted(const QModelIndex &parent, int start, int end)
重写了:QAbstractItemView::rowsInserted (const QModelIndex &parent, int start, int end)。
[override virtual protected] void QColumnView::scrollContentsBy(int dx, int dy)
重新实现了:QAbstractScrollArea::scrollContentsBy(int dx, int dy)。
[override virtual] void QColumnView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
重写了:QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint)。
[override virtual] void QColumnView::selectAll()
重写了:QAbstractItemView::selectAll()。
void QColumnView::setColumnWidths(const QList<int> &list)
将列宽设置为list 中指定的值。列表中的额外值将被保留,并在创建列时使用。
如果列表中的值过少,则仅剩余列的宽度不会被修改。
另请参阅 columnWidths() 和createColumn()。
[override virtual] void QColumnView::setModel(QAbstractItemModel *model)
重写了:QAbstractItemView::setModel(QAbstractItemModel *model)。
void QColumnView::setPreviewWidget(QWidget *widget)
设置预览widget 。
widget 将成为列视图的子元素,并在列区域被删除或设置了新的控件时被销毁。
另请参阅 previewWidget() 和updatePreviewWidget()。
[override virtual] void QColumnView::setRootIndex(const QModelIndex &index)
重写了:QAbstractItemView::setRootIndex(const QModelIndex &index)。
[override virtual protected] void QColumnView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)
重写了:QAbstractItemView::setSelection (const QRect &rect, QItemSelectionModel::SelectionFlags flags)。
[override virtual] void QColumnView::setSelectionModel(QItemSelectionModel *newSelectionModel)
重写了:QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)。
[override virtual] QSize QColumnView::sizeHint() const
重新实现了:QAbstractScrollArea::sizeHint() const。
[signal] void QColumnView::updatePreviewWidget(const QModelIndex &index)
当需要更新预览控件以提供有关index
另请参阅 previewWidget()。
[override virtual protected] int QColumnView::verticalOffset() const
重新实现了:QAbstractItemView::verticalOffset() const。
[override virtual] QRect QColumnView::visualRect(const QModelIndex &index) const
重写了:QAbstractItemView::visualRect(const QModelIndex &index) const。
[override virtual protected] QRegion QColumnView::visualRegionForSelection(const QItemSelection &selection) const
重写了:QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.