24.QTableView

QTableView view(this);
QStandardItemModel model(this);

/*设置表头水平标题*/
model.setHorizontalHeaderItem(0,new QStandardItem("Name"));
model.setHorizontalHeaderItem(1,new QStandardItem("Sex"));
model.setHorizontalHeaderItem(2,new QStandardItem("Age"));
model.horizontalHeaderItem(0)->setFont(QFont("Helvetica",20,50));   //设置标题字体

/*设置表头垂直标题*/
model.setVerticalHeaderItem(0,new QStandardItem("No.1"));
model.setVerticalHeaderItem(1,new QStandardItem("No.2"));
model.setVerticalHeaderItem(2,new QStandardItem("No.3"));

/*设置列表条目数据*/
QPixmap  pix(":user.png");
pix = pix.scaled(24,24,Qt::KeepAspectRatio);
QStandardItem *itemA=new QStandardItem();
itemA->setData(pix,Qt::DecorationRole);                        //设置条目图标
itemA->setData("A",Qt::DisplayRole);
itemA->setData("A:tooltip",Qt::ToolTipRole);
itemA->setData(QFont("宋体",12,QFont::Bold,true),Qt::FontRole); //设置条目字体
itemA->setData(Qt::AlignCenter,Qt::TextAlignmentRole);         //设置条目中心对齐

   QLinearGradient linearGradient(0,0,100,20);
   linearGradient.setColorAt(0.2, Qt::white);
   linearGradient.setColorAt(0.6, Qt::green);
   linearGradient.setColorAt(1.0, Qt::black);
   itemA->setData(QBrush(linearGradient),Qt::BackgroundRole);    //设置条目背景色(为渐变色)

   model.setItem(0,0,itemA);
   model.setItem(0,1,new QStandardItem("B"));
   model.setItem(1,0,new QStandardItem("C"));
   model.item(0,1)->setTextAlignment(Qt::AlignCenter);  //设置条目居中对齐

/*将数据模型的第一列进行下降排序(从大到小)*/
model.sort(0,Qt::DescendingOrder);

/*设置列宽不可变动*/
view.horizontalHeader()->setResizeMode(QHeaderView::Fixed);

/*设置行宽不可变动*/
view.verticalHeader()->setResizeMode(QHeaderView::Fixed);

/*设置用户不能选择表格*/

view.setSelectionMode(QAbstractItemView::NoSelection);

/*设置表格不可编辑*/
view.setEditTriggers(QAbstractItemView::NoEditTriggers);
/*设置表头的显示与隐藏*/
view.horizontalHeader()->setVisible(false);
view.verticalHeader()->setVisible(false);

/*禁止显示网格线*/
view.setShowGrid(false);

/*禁止显示滚动条*/
view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

/*设置行列的高宽*/
view.setColumnWidth(0,50);            //设置column0(第1列)的宽度为50
view.setRowHeight(0,30);               //设置row0(第1行)的高度为30
view.resizeRowsToContents();    //更据当前内容自动调整行距
view.resizeColumnsToContents(); //更据当前内容自动调整列距

/*禁止焦点(取消QTableView选中后的虚线框)*/

view.setFocusPolicy(Qt::NoFocus);

 

原文地址:https://www.cnblogs.com/lifexy/p/9155708.html

时间: 2024-10-11 07:32:49

24.QTableView的相关文章

24.QTableView函数使用,右击菜单实现

QTableView view(this); QStandardItemModel model(this); model.setHorizontalHeaderItem(0,new QStandardItem("Name")); model.setHorizontalHeaderItem(1,new QStandardItem("Sex")); model.setHorizontalHeaderItem(2,new QStandardItem("Age&q

【Qt5开发及实例】24、数据柱形图显示

数据柱形图显示 1.我们首先把这个这个视图的表格部分表示出来 mainwindow.h /** * 书本:[Qt5开发及实例] * 功能:数据柱形图显示,这个类是表格显示 * 文件:mainwindow.h * 时间:2015年1月28日18:50:54 * 作者:cutter_point */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStandardItemModel>

QTableView中修改某个单元格或者行或者列内容颜色

QTableView的单元格内容实现还是继承了TableViewModel类的data(const QModelIndex &index, int role) const函数,那个设置颜色的问题也就在这个里面实现了. 1.设置某个单元格颜色 1 QVariant TableViewModel::data(const QModelIndex &index, int role) const 2 { 3 if (!index.isValid()) 4 return QVariant(); 5 i

QT QTableView用法小结

QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 1 //准备数据模型 2 QStandardItemModel *student_model = new QStandardItemModel(); 3 student_model->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("Name"))); 4 student_model->setHorizontal

Qt QtableView使用

1 ui->setupUi(this); 2 ui->mainToolBar->hide(); 3 4 tableView = new QTableView(this); 5 6 7 // 设置表头 8 QStandardItemModel *studentModel = new QStandardItemModel(); 9 studentModel->setHorizontalHeaderItem(0, new QStandardItem(tr("姓名"))

QTableView使用自定义委托(QItemDelegate)

需要在表格中绘制流程图,主要有箭头,方向,颜色,字符串,由于QTableView没有可用的绘制函数,所以需要自己去定义. 委托(delegate)继承QItemDelegate,模型(model)继承QAbstractTableModel,表头(headerview)继承QHeaderView,表(table)继承QTableView 这里只实现绘制显示功能,如果需要进行编辑还需另外重写createEditor setEditorData setModelData 函数 如下是实现效果图 1 /

Qt中的QTableView 中的列放入Widget

QTableView是Qt中Model View理念的框架,View只展现数据,所以通过互交修改编辑数据,需要用到委托这个概念Delegate. 所以基本思路是继承QItemDelegate这个类,然后overried里面的方法,然后通过QTableView的成员函数setItemDelegateForColumn就可以了. 以下代码是在某列中添加QComboBox: 1 ///////////////////////////EmployeePrivilegeComboxEditor.h////

在QTableView中某列中添加Button的导致滚动条滚动的时候消失的问题

之前在项目上需要在表格中加入Button是按照以下两个文章的做法: http://www.cnblogs.com/li-peng/p/3961843.html http://www.cnblogs.com/li-peng/p/4029885.html 文章的做法是传统通过子类化QItemDelegate类来做的,通过paint函数在某列中画出QPushButton的Style. 但是这么做有一个问题,就是按钮画出来以后,但是拖动QTableView的滚动条的时候,会导致按钮所在的列的部分按钮又消

24、剑指offer--二叉树中和为某一值的路径

题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 解题思路:本题采用先序遍历,遍历到叶子节点,如果和不等于其值,则返回至上一层的根结点,本题使用栈结构来存储路径,这样可以方便返回上一父结点的时候,将当前结点从路径中删除 1 /*struct TreeNode { 2 int val; 3 struct TreeNode *left; 4 struct TreeNode *right; 5 Tre