QTableView使用心得

一、常规流程

Qt中表格控件,常用的有QTableViewQTableWidget,为什么选择使用QTableView呢?因为QTableView支持MVC模式(模型-视图框架)。

QTableView* m_pTable = new QTableView;
QStandardItemModel* m_pTable_Model = new QStandardItemModel;
m_pTable->setModel(m_pTable_Model);

使用模型-视图框架,在表格中添加数据时,我们只需要在model中插入数据即可,一旦model中的数据发生变化,QTabelView显示就会做相应的变动(观察者模式)。

m_pTable_Model ->setItem(0, 0, new QStandardItem("张三"));
m_pTable_Model ->setItem(0, 1, new QStandardItem("20120202"));
m_pTable_Model ->setItem(0, 2, new QStandardItem("男"));
m_pTable_Model ->setItem(0, 3, new QStandardItem("18"));
m_pTable_Model ->setItem(0, 4, new QStandardItem("计算机学院"));

二、功能记录

1、设置表头

QStringList qstrListHeader;
qstrListHeader<<tr("测试记录");
m_pTable_Model->setHorizontalHeaderLabels(qstrListHeader);

2、设置表头颜色

m_pTable->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(0, 85, 127, 75)}"); 

3、设置表格隔行换色

m_pTable->setAlternatingRowColors(true);						

4、设置表格扩展

m_pTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);	

5、设置最后一列自动填充

m_pTable->horizontalHeader()->setStretchLastSection(true);			

6、设置整行选中

m_pTable->setSelectionBehavior(QAbstractItemView::SelectRows);		

7、设置只读,不可编辑

m_pTable->setEditTriggers(QAbstractItemView::NoEditTriggers);

8、隐藏最左侧的默认行标号

m_pTable->verticalHeader()->setVisible(false);	

9、获取当前选中行

QModelIndex index = m_pTable->selectionModel()->currentIndex();

10、表格滚动到指定行

m_pTable->scrollTo(index); //QModelIndex index

11、切换当前选中行到指定行

m_pTable->selectRow(row);

12、设置列宽不可变动,即不能通过鼠标拖动增加列宽

m_pTable->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed); //第0列,列宽固定  
m_pTable->horizontalHeader()->setResizeMode(1, QHeaderView::Fixed); //第1列,列宽固定  
m_pTable->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed); //第2列,列宽固定  

13、设置表格的各列的宽度值

m_pTable->setColumnWidth(0,100); //第0列,宽度为100
m_pTable->setColumnWidth(1,200); //第1列,宽度为200
m_pTable->setColumnWidth(2,300); //第2列,宽度为300

14、在QTableView中使用右键菜单,需启用该属性

m_pTable->setContextMenuPolicy(Qt::CustomContextMenu);

15、设置单元格文本居中

//设置单元格(0,0)文本居中
m_pTable_Model->item(0, 0)->setTextAlignment(Qt::AlignCenter);

16、设置单元格背景颜色

//设置单元格(0,0)背景颜色为红色
m_pTable_Model->item(0, 0)->setBackground(QBrush(QColor(255, 0, 0))); 

17、设置单元格文本加粗

//设置单元格(0,0)文本加粗
m_pTable_Model->item(0, 0)->setFont( QFont( "Times", 10, QFont::Black ) );

18、设置单元格背景颜色

//设置单元格(0,0)背景颜色为红色
m_pTable_Model->item(0, 0)->setBackground(QBrush(QColor(255, 0, 0))); 

19、按照某列进行排序

m_pTable_Model->sort(col, Qt::DescendingOrder);
//升序:Qt::AscendingOrder
//降序:Qt::DescendingOrder
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

贝勒里恩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值