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

一 添加表头

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

二 设置表格属性

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

三 动态添加行

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

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

四 设置数据显示的样式

  //设置单元格文本居中,张三的数据设置为居中显示
student_model->item(, )->setTextAlignment(Qt::AlignCenter);
student_model->item(, )->setTextAlignment(Qt::AlignCenter);
student_model->item(, )->setTextAlignment(Qt::AlignCenter);
student_model->item(, )->setTextAlignment(Qt::AlignCenter);
student_model->item(, )->setTextAlignment(Qt::AlignCenter); //设置单元格文本颜色,张三的数据设置为红色
student_model->item(, )->setForeground(QBrush(QColor(, , )));
student_model->item(, )->setForeground(QBrush(QColor(, , )));
student_model->item(, )->setForeground(QBrush(QColor(, , )));
student_model->item(, )->setForeground(QBrush(QColor(, , )));
student_model->item(, )->setForeground(QBrush(QColor(, , ))); //将字体加粗
student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) );
student_model->item(, )->setFont( QFont( "Times", , QFont::Black ) ); //设置排序方式,按年龄降序显示
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. 自定义cell右侧 多按钮

    #import "ViewController.h" @interface ViewController () <UITableViewDataSource, UITable ...

  2. SQL基础--同义词

    同义词的概念: 同义词是Oracle对象的别名,使用同义词访问相同的对象 可以为表.视图.存储过程.函数或另一同义词等对象创建同义词 方便访问其它用户的对象,隐藏了对象的身份 缩短对象名字的长度 同义 ...

  3. Reactive Extensions介绍

    Reactive Extensions(Rx)是对LINQ的一种扩展,他的目标是对异步的集合进行操作,也就是说,集合中的元素是异步填充的,比如说从Web或者云端获取数据然后对集合进行填充.Rx起源于M ...

  4. Jenkins常用插件说明(持续更新)

    本文主要记录在学习以及使用Jenkins过程中常用的对我们有帮助的插件,同时本文将会持续进行更新.如果大家发现有其他野很好用的插件,也欢迎参照下面的格式,在评论中进行回复反馈. 一.通用插件 1.Em ...

  5. Mint Linux 安装 DotnetCore 遭遇无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

    evlon@evlon-ThinkPad-T530 ~ $ apt install dotnet-dev-1.0.0-preview2-003121 正在读取软件包列表... 完成 正在分析软件包的依 ...

  6. EF Codefirst 多对多关系 操作中间表的 增删改查(CRUD)

    前言 此文章只是为了给新手程序员,和经验不多的程序员,在学习ef和lambada表达式的过程中可能遇到的问题. 本次使用订单表和员工表建立多对多关系. 首先是订单表: public class Ord ...

  7. LinuxThreads 和 NPTL

    http://www.ibm.com/developerworks/cn/linux/l-threading.html Linux 线程模型的比较:LinuxThreads 和 NPTL 进行移植的开 ...

  8. Elasticsearch 5.0 —— Head插件部署指南

    使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了.下面就看看如何在5.0中启动Head插件吧! 官方粗略教程 Running with built in server ...

  9. 2013 duilib入门简明教程 -- 界面布局(9)

        上一个教程实现的标题栏代码中,并没有看到处理自适应窗口大小的代码,但是窗口大小变化后,按钮的位置会跟着变化,这是因为我们将按钮放到了HorizontalLayout.VerticalLayou ...

  10. HTML5 音频播放器-Javascript代码(短小精悍)

    直接上干货咯! //HTML5 音频播放器 lzpong 2015/01/19 var wavPlayer = function () { if(window.parent.wavPlayer) re ...