TableView索引的添加

首先是在这个代理函数中添加索引数组:


#pragma mark-索引显示数组
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    NSMutableArray *array = [NSMutableArray array];
    
    for (int i = 0; i < datasource.count; i++) {
        NSDictionary *dic = datasource[i];
        NSString *temp = [dic allKeys][0];
        [array addObject:temp];
    }
    return array;
}

这样就可以在右侧显示了,说明下,我的模型数组里面嵌套字典,字典的Key为ABCD*****,字典的value为首字母为该key的用户的名字,下面是建立索引对应关系,这里的

    if (key == UITableViewIndexSearch) {
        
        [self.ContactTableView setContentOffset:CGPointZero animated:NO];
        return NSNotFound;
    }
是不会执行的!



#pragma mark-自定义索引与数组的对应关系
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    NSDictionary *dic = [datasource objectAtIndex:index];
    
    NSString *key = [dic allKeys][0];
    
    if (key == UITableViewIndexSearch) {
        
        [self.ContactTableView setContentOffset:CGPointZero animated:NO];
        return NSNotFound;
    }
    return index;
}


加上索引后,发现右侧有个白色竖条,解决方法就是设置索引的背景色为无色,代码如下:

self.ContactTableView.sectionIndexBackgroundColor = [UIColor clearColor];

方法来源于网络。。。。。有什么错误的地方,还请指正。。。。
Qt中的QTableView提供了代理模式来处理表格中的数据显示和编辑,我们可以通过自定义代理来添加图片到表格中。 首先,我们需要创建一个自定义的QStyledItemDelegate代理类,重写其paint()函数和sizeHint()函数。在paint()函数中,我们可以获取到所需的QPainter对象,然后使用drawPixmap()方法绘制我们要显示的图片。在sizeHint()函数中,我们可以指定代理单元格的大小。 接下来,在使用QTableView显示数据的地方,我们需要设置该列使用自定义的代理类。我们可以使用setIndexWidget()方法将代理类对象与特定的单元格索引关联起来。例如,我们可以使用以下代码将第一列的每个单元格都设置为使用自定义代理类: ``` // 创建代理类对象 MyItemDelegate* delegate = new MyItemDelegate(parent); // 根据需要设置代理类的各项属性,例如图片大小 // 关联代理类对象与表格索引 tableView->setItemDelegateForColumn(0, delegate); ``` 上述代码首先创建了代理对象`delegate`,然后将其与QTableView对象`tableView`的第一列关联起来。 当我们设置了代理类之后,当表格中的数据要显示在该列时,代理类的paint()函数就会自动调用。在paint()函数中,我们可以从model中获取到相应的数据,并绘制所需的图片。 需要注意的是,在获取到图片之后,我们可能需要先将其转换为一个QPixmap对象,并根据需要进行缩放或者裁剪,然后再使用drawPixmap()绘制到代理单元格中。 通过以上步骤,我们就可以实现在Qt的QTableView添加图片的功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值