QT学习教程10-对CheckHeaderView的解析

这里是拿到一个小型demo,进行分析。

目录

  • 对CheckHeaderView的解析
  • 知识复习

对CheckHeaderView的解析

  1. 在QTableView等View类中,头部(可能是水平或垂直)都是由QHeaderView来管理的。
    QtCheckHeaderView *header = new QtCheckHeaderView(Qt::Horizontal, tableView);
  2. QStandardItem *root = model->invisibleRootItem();
    对于每个顶层item,其实它都是一个不可见item的子item,如果想要便利所有顶层item,可以使用如下方法。
QStandardItemModel* model = new QStandardItemModel;
QStandardItem* rootItem = model->invisibleRootItem();
for (int i = 0; i < rootItem->rowCount(); ++i)
{
    for (int j = 0; j < rootItem->columnCount(); ++j)
    {
        QStandardItem* item = rootItem->child(i, j);
        //do somting ... 
    }
}
  1. itemFromIndex(const QModelIndex &index) const
    通过QModelIndex来获取item,QModelIndex 是一个用于定位item的类。
  2. QVBoxLayout:在垂直的方向上排列控件 上下排列。

知识复习

  1. QLCDNumber控件用于显示一个LCD数字。 QLCDNumber会将非法字符替代为空格。
  2. QProgressBar部件提供了一个水平或垂直进度条,进度条用于给用户操作一个进度指示,并向它们说明应用程序仍在运行。
  3. 不同的需求所需要的布局效果不同。
  4. 流布局管理器在整个容器中的布局正如其名,像“流”一样从左到右摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。
public FlowLayout()
public FlowLayout(int alignment)
public FlowLayout(int alignment, int horizGap, int vertGap)

构造方法中的alignment参数表示使用流布局管理器后组件在每一行的具体摆放位置。alignment为0时,每一行的组件将被指定按照左对齐排列;alignment为2时,每一行的组件将被指定按照右对齐排列;alignment为1时,每一行的组件将被指定按照居中对齐排列;

  1. 自定义控件(提升)的方式。
  2. ui的控件和自定义控件的父类(基类)要一样。
  3. evenFilter()事件过滤器。
  4. event()只对本定义控件有利。
  5. 重写虚函数必须和基类中的虚函数一致。

你可能感兴趣的:(QT学习教程)