模型视图(12):【类】QColumnView[官翻]

本文详细介绍了QColumnView类,它提供列视图的模型/视图实现,是Qt模型/视图框架一部分。文中阐述了其详述内容,包括在多个QListViews中显示模型;还介绍了属性、公共函数、重新实现的公共函数、信号、受保护的函数等,最后给出了示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QColumnView 类

QColumnView类提供了列的视图的模型/视图实现。

Header:#include < QColumnView >
qmake:QT += widgets
Inherits:QAbstractItemView
Inherited By:

详述

QColumnView在许多QListViews中显示一个模型,每个QListViews对应树中的每个层次结构。这有时被称为级联列表。

QColumnView类是模型/视图类之一,是Qt的模型/视图框架的一部分。

QColumnView实现了QAbstractItemView类定义的接口,允许它显示由QAbstractItemModel类派生的模型提供的数据。

参见: Model/View Programming.

属性

  1. resizeGripsVisible: bool 指定列表视图是否获取调整大小的夹点
    默认情况下,visible设置为true

公共函数

  1. QColumnView(QWidget *parent = nullptr)

  2. virtual ~QColumnView()

  3. QList< int > columnWidths() const

  4. void setColumnWidths(const QList< int > &list)

  5. QWidget * previewWidget() const

  6. void setPreviewWidget(QWidget *widget)

  7. bool resizeGripsVisible() const

  8. void setResizeGripsVisible(bool visible)

重新实现的公共函数

  1. virtual QModelIndex indexAt(const QPoint &point) const override
  2. virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
  3. virtual void selectAll() override
  4. virtual void setModel(QAbstractItemModel *model) override
  5. virtual void setRootIndex(const QModelIndex &index) override
  6. virtual void setSelectionModel(QItemSelectionModel *newSelectionModel) override
  7. virtual QSize sizeHint() const override
  8. virtual QRect visualRect(const QModelIndex &index) const override

信号

  1. void updatePreviewWidget(const QModelIndex &index)

受保护的函数

  1. virtual QAbstractItemView * createColumn(const QModelIndex &index)
  2. void initializeColumn(QAbstractItemView *column) const

重新实现的受保护的函数

  1. virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous) override
  2. virtual int horizontalOffset() const override
  3. virtual bool isIndexHidden(const QModelIndex &index) const override
  4. virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
  5. virtual void resizeEvent(QResizeEvent *event) override
  6. virtual void rowsInserted(const QModelIndex &parent, int start, int end) override
  7. virtual void scrollContentsBy(int dx, int dy) override
  8. virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
  9. virtual int verticalOffset() const override
  10. virtual QRegion visualRegionForSelection(const QItemSelection &selection) const override

示例

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QStandardItemModel standardModel;
    QStandardItem *rootNode = standardModel.invisibleRootItem();

    //defining a couple of items
    QStandardItem *americaItem = new QStandardItem("America");
    QStandardItem *mexicoItem =  new QStandardItem("Canada");
    QStandardItem *usaItem =     new QStandardItem("USA");
    QStandardItem *bostonItem =  new QStandardItem("Boston");
    QStandardItem *europeItem =  new QStandardItem("Europe");
    QStandardItem *italyItem =   new QStandardItem("Italy");
    QStandardItem *romeItem =    new QStandardItem("Rome");
    QStandardItem *veronaItem =  new QStandardItem("Verona");

    //building up the hierarchy
    rootNode->    appendRow(americaItem);
    rootNode->    appendRow(europeItem);
    americaItem-> appendRow(mexicoItem);
    americaItem-> appendRow(usaItem);
    usaItem->     appendRow(bostonItem);
    europeItem->  appendRow(italyItem);
    italyItem->   appendRow(romeItem);
    italyItem->   appendRow(veronaItem);

    QColumnView view;
    view.setModel(&standardModel);
    view.show();

    QTreeView tree;
    tree.setModel(&standardModel);
    tree.show();
    qDebug() << view.width() << view.y();
    tree.move(view.x() + view.width(),view.y());

    return a.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值