一、创建模型对象
QTableView * tableView = new QTableView();
二、创建数据模型
QStandardItemModel *model = new QStandardItemModel (this);
三、表头
//设置列数
model->setColumnCount(4);
//添加表头标题
model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("姓名"));
model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("年龄"));
model->setHeaderData(2,Qt::Horizontal,QString::fromLocal8Bit("性别"));
model->setHeaderData(3,Qt::Horizontal,QString::fromLocal8Bit("生日"));
//绑定对象和模型
tableView ->setModel(model);
//表头信息显示位置
(1)水平居左
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
(2)水平居右
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignRight);
(3)水平居中
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);
(4)水平两端对齐
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);
(5)垂直靠上
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignTop);
(6)垂直靠下
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignBottom);
(7)垂直居中
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignVCenter);
(8)垂直和水平居中 等价于Qt::AlignHCenter | Qt::AlignVCenter
tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
四、列属性
//设置指定列不可编辑
QStandardItemModel *model = new QStandardItemModel ();
int row_list = model->rowCount(); //得到行数
QStandardItem *item_name = new QStandardItem ("小明");
model->setItem(row_list,2,item_name); //设置每一行的第3列不可编辑
item_name->setFlags(Qt::NoItemFlags);
//设置列宽不可变动,即不能通过鼠标拖动增加列宽
tableView->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
//设置列的宽度
tableView->setColumnWidth(0,100);
//隐藏列表头
tableWidget->verticalHeader()->setVisible(false);
五、行属性
//设置选中时为整行选中
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//隐藏行表头
tableView->horizontalHeader()->setVisible(false);
六、综合属性
//设置排序
(1)指定列降序
model->sort(3, Qt::DescendingOrder);
(2)所有的列都排序
tableView->setSortingEnabled(true);
//背景网格线设置
tableView->setShowGrid(true / false); 显示/隐藏
//设置tableView窗口大小
tableView->resize(width,height);
//数据清楚
model->clear();
//文本居中
item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
或者
item->setTextAlignment(Qt::AlignCenter);
QTableView的使用基础知识
猜你喜欢
转载自blog.csdn.net/weixin_41734758/article/details/108500383
今日推荐
周排行