QT学习笔记(10)-对CheckHeaderView的解析

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

对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. 重写虚函数必须和基类中的虚函数一致。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值