QTableView常用于实现数据的表格显示。下面我们如何按步骤实现学生信息表格:

一 添加表头

  1. //准备数据模型
  2. QStandardItemModel *student_model = new QStandardItemModel();
  3. student_model->setHorizontalHeaderItem(, new QStandardItem(QObject::tr("Name")));
  4. student_model->setHorizontalHeaderItem(, new QStandardItem(QObject::tr("NO.")));
  5. student_model->setHorizontalHeaderItem(, new QStandardItem(QObject::tr("Sex")));
  6. student_model->setHorizontalHeaderItem(, new QStandardItem(QObject::tr("Age")));
  7. student_model->setHorizontalHeaderItem(, new QStandardItem(QObject::tr("College")));
  8. //利用setModel()方法将数据模型与QTableView绑定
  9. ui->student_tableview->setModel(student_model);

二 设置表格属性

  1. //设置列宽不可变动,即不能通过鼠标拖动增加列宽
  2. ui->student_tableview->horizontalHeader()->setResizeMode(, QHeaderView::Fixed);
  3. ui->student_tableview->horizontalHeader()->setResizeMode(, QHeaderView::Fixed);
  4. ui->student_tableview->horizontalHeader()->setResizeMode(, QHeaderView::Fixed);
  5. ui->student_tableview->horizontalHeader()->setResizeMode(, QHeaderView::Fixed);
  6. ui->student_tableview->horizontalHeader()->setResizeMode(, QHeaderView::Fixed);
  7.  
  8. //设置表格的各列的宽度值
  9. ui->student_tableview->setColumnWidth(,);
  10. ui->student_tableview->setColumnWidth(,);
  11. ui->student_tableview->setColumnWidth(,);
  12. ui->student_tableview->setColumnWidth(,);
  13. ui->student_tableview->setColumnWidth(,);
  14.  
  15. //默认显示行头,如果你觉得不美观的话,我们可以将隐藏
  16. ui->student_tableview->verticalHeader()->hide();
  17. //显示QTableView 的第六列 第一个参数是列的值,从0开始算起,第二个参数是 设置显示与隐藏 true 为隐藏 false 为显示
  18. ui->student_tableview->setColumnHidden(,false);
  19. //设置选中时为整行选中
  20. ui->student_tableview->setSelectionBehavior(QAbstractItemView::SelectRows);
  21.  
  22. //设置表格的单元为只读属性,即不能编辑
  23. ui->student_tableview->setEditTriggers(QAbstractItemView::NoEditTriggers);
  24.  
  25. //如果你用在QTableView中使用右键菜单,需启用该属性
  26. ui->tstudent_tableview->setContextMenuPolicy(Qt::CustomContextMenu);

三 动态添加行

在表格中添加行时,我们只需要在model中插入数据即可,一旦model中的数据发生变化,QTabelView显示就会做相应的变动

  1. //在第一行添加学生张三的个人信息(setItem函数的第一个参数表示行号,第二个表示列号,第三个为要显示的数据)
  2. student_model->setItem(, , new QStandardItem(“张三"));
  3. student_model->setItem(, , new QStandardItem(""));
  4. student_model->setItem(, , new QStandardItem(""));
  5. student_model->setItem(, , new QStandardItem(""));
  6. student_model->setItem(, , new QStandardItem("土木学院"));

四 设置数据显示的样式

  1. //设置单元格文本居中,张三的数据设置为居中显示
  2. student_model->item(, )->setTextAlignment(Qt::AlignCenter);
  3. student_model->item(, )->setTextAlignment(Qt::AlignCenter);
  4. student_model->item(, )->setTextAlignment(Qt::AlignCenter);
  5. student_model->item(, )->setTextAlignment(Qt::AlignCenter);
  6. student_model->item(, )->setTextAlignment(Qt::AlignCenter);
  7.  
  8. //设置单元格文本颜色,张三的数据设置为红色
  9. student_model->item(, )->setForeground(QBrush(QColor(, , )));
  10. student_model->item(, )->setForeground(QBrush(QColor(, , )));
  11. student_model->item(, )->setForeground(QBrush(QColor(, , )));
  12. student_model->item(, )->setForeground(QBrush(QColor(, , )));
  13. student_model->item(, )->setForeground(QBrush(QColor(, , )));
  14.  
  15. //将字体加粗
  16. student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
  17. student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
  18. student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
  19. student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
  20. student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
  21.  
  22. //设置排序方式,按年龄降序显示
  23. student_model->sort(, Qt::DescendingOrder);

QT QTableView用法小结的更多相关文章

  1. 【转载】QT QTableView用法小结

    原始日期: 2016-08-16 09:28 来源:http://blog.csdn.net/wang_lichun/article/details/7805253 QTableView常用于实现数据 ...

  2. 转载:QT QTableView用法小结

    出自: http://blog.chinaunix.net/uid-20382483-id-3518513.html QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: ...

  3. QT QXmlStreamWriter用法小结

    一 API介绍 writeStartDocument():写文档头,作用类似于创建一个xml文档,并在文档开头部分写入版本信息和编码信息,一般为: <?xml version="1.0 ...

  4. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  5. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  6. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  7. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  8. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  9. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

随机推荐

  1. 在.NET Core中遭遇循环依赖问题"A circular dependency was detected"

    今天在将一个项目迁移至ASP.NET Core的过程中遭遇一个循环依赖问题,错误信息如下: A circular dependency was detected for the service of ...

  2. mysql 内连接、左连接、右连接

    记录备忘下,初始数据如下: DROP TABLE IF EXISTS t_demo_product; CREATE TABLE IF NOT EXISTS t_demo_product( proid ...

  3. Kruskal 最小生成树算法

    对于一个给定的连通的无向图 G = (V, E),希望找到一个无回路的子集 T,T 是 E 的子集,它连接了所有的顶点,且其权值之和为最小. 因为 T 无回路且连接所有的顶点,所以它必然是一棵树,称为 ...

  4. 搭建 SVN 服务器

    安装.启动 SVN 服务器 在 Windows 下,可以使用以下命令将 SVN 服务注册到 windows 服务中去: sc create svnserver binPath= "drive ...

  5. 论HTML5 Audio 标签歌词同步的实现

    HTML5草案里面其实有原生的字幕标签(<track> Tag)的,但使用的是vtt格式的文件,非常规的字幕(.sub, .srt)或歌词文件(.lrc). 用法如下(代码来自W3Scho ...

  6. 跟我一起数据挖掘(21)——redis

    什么是Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...

  7. spring事务管理器设计思想(二)

    上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当前没有事务,就新建一个事务.这是最常见 ...

  8. C语言 · 未名湖边的烦恼

    问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个.现在 ...

  9. Struts2.X——搭建

    今天是我第一次用博客,虽然还有好多的不懂,但是我还是会努力的把自己学到的写下来,分享给大家: 一,SSH框架中的struts2的搭建流程 1.在搭建struts2之前,我们首先要有struts2的ja ...

  10. PHP类的封装和做投票和用进度条显示

    三处理传过来的数据1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...