QT中QTableView常用API记录

记录下QTableView常用的设置封装,QTableWidget便利类继承自QTableView,所以下面这些也支持QTableWidget使用。

void MyTableView::initTableView(QTableView *tableView, int rowHeight, bool headVisible/*表头可见*/, bool edit/*可否编辑*/)
{
    // ------------表头相关

    // 垂直表头是否可见
    tableView->verticalHeader()->setVisible(headVisible);
    // 设置水平表头为左对齐
    tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);  
    // 设置垂直表头为底对齐
    tableView->verticalHeader()->setDefaultAlignment(Qt::AlignBottom); 
    // 固定表格宽度不可扩展,不可手动调整宽度
    tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); 
    // 表格宽度随内容自动扩展
    tableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); 
    // 表格宽度自动根据UI进行计算,不可手动调整宽度
    tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); 
    // 选中一行表头是否加粗
    tableView->horizontalHeader()->setHighlightSections(false);
    // 最后一行拉伸填充
    tableView->horizontalHeader()->setStretchLastSection(true);
    // 行标题最小宽度尺寸
    tableView->horizontalHeader()->setMinimumSectionSize(0);
    // 行标题最大高度
    tableView->horizontalHeader()->setMaximumHeight(rowHeight);
    // 默认行高
    tableView->verticalHeader()->setDefaultSectionSize(rowHeight);
    // 隐藏默认行号
    tableView->verticalHeader()->setHidden(true); 
    // 表头不可单击
    tableView->horizontalHeader()->setSectionsClickable(false);


    // ---------- 选择模式

    // 选中时一行整体选中
    tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    // 只允许选择单个
    tableView->setSelectionMode(QAbstractItemView::SingleSelection);


    // ---------- 图片及样式

    // 设置icon尺寸大小
    tableView->setIconSize(QSize(30, 30)); 
    // 禁用拖拽,否则此处添加拖拽的话会生成两个item
    tableView->setDragEnabled(false); 
    // 设置鼠标追踪
    tableView->setMouseTracking(true); 
    // 奇数偶数行颜色交替
    tableView->setAlternatingRowColors(false);
    // 隐藏网格线
    tableView->setShowGrid(false); 
    // 线的样式
    tableView->setGridStyle(Qt::DotLine); 
    // 取消Item选中后的虚线边框
    tableView->setFocusPolicy(Qt::NoFocus); 


    // ----------- 滚动条

    // 显示/隐藏 垂直/水平 滑动条
    tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
               /*水平setHorizontalScrollBarPolicy*/ /*关闭Qt::ScrollBarAlwaysOff*/
    // 垂直滚动条设置为像素滚动
    tableView->setVerticalScrollMode(QTableView::ScrollPerPixel); 
    // 设置滚动条步长(要先设置为像素滚动,才能生效;ITEM_HEIGHT为项的高度)
    tableView->verticalScrollBar()->setSingleStep(ITEM_HEIGHT/3); 


    // 编辑模式
    if (edit) {
        tableView->setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::DoubleClicked);
    } else {
        tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬算不酸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值