QTableView常用于实现数据的表格显示。
//数据定义
QStandardItemModel *itemModel = new QStandardItemModel ;
QTableView * tableView = new QTableView;
//数据模型
itemModel ->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("xxx")));
itemModel ->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("xxx")));
itemModel ->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("xxx")));
//利用setModel()方法将数据模型与QTableView绑定
ui->tableView ->setModel(itemMode)l
//设置列宽不可变动,即不能通过鼠标拖动增加列宽
ui->tableView ->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
//用户可设置,也可被程序设置成默认大小
ui->tableView ->horizontalHeader()->setResizeMode(1, QHeaderView::Interactive);
//根据空间,自动改变列宽,用户与程序不能改变列宽
ui->tableView ->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
//根据内容改变列宽,用户与程序不能改变列宽
ui->tableView ->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
//设置某一列的列宽
void QTableView::setColumnWidth(int column, int width);
//设置列宽最大值
void setMaximumSectionSize(int size);
//设置列宽最小值
void setMinimumSectionSize(int size);
//默认显示行头,可以将隐藏
ui->tableView ->verticalHeader()->hide();
//隐藏行序号
ui->tableView->verticalHeader()->hide();
//设置选中时为整行选中
ui->tableView ->setSelectionBehavior(QAbstractItemView::SelectRows);
//获取选中单元格的属性
ui->tableView->currentIndex(); //获取选中单元格的index
ui->tableView->currentIndex().column(); //当前选中单元格的列号
ui->tableView->currentIndex().row(); //当前选中单元格行号
ui->tableView->currentIndex().data(); //当前选中单元格内的数据
//设置自动排列
ui->tableView->setSortingEnabled(true);
删除行:
//x是指定删除哪一行
itemModel ->removeRow(x);
//删除所有行
itemModel ->removeRows(0,model->rowCount());
//设置隔行变色
tableView->setAlternatingRowColors(true);
//表格禁止编辑
tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//任何时候都可以编辑
tableView->setEditTriggers(QAbstractItemView::CurrentChanged );
//双击单元格
tableView->setEditTriggers(QAbstractItemView::DoubleClicked );
//单击已选中的内容
tableView->setEditTriggers(QAbstractItemView::SelectedClicked );
//按下编辑
tableView->setEditTriggers(QAbstractItemView::EditKeyPressed );
//按下任意键修改
tableView->setEditTriggers(QAbstractItemView::AnyKeyPressed );
//以上条件全包括
tableView->setEditTriggers(QAbstractItemView::AllEditTriggers );
//整行选中
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//选中单个单元格
tableView->setSelectionMode(QAbstractItemView::SelectItems);
//选中一行
tableView->setSelectionMode(QAbstractItemView::SelectRows );
//选中一列
tableView->setSelectionMode(QAbstractItemView::SelectColumns );
//单个选中
tableView->setSelectionMode(QAbstractItemView::SingleSelection);
//多个选中
tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
//不能选择
tableView->setSelectionMode(QAbstractItemView::NoSelection );
//多个选中
tableView->setSelectionMode(QAbstractItemView::MultiSelection );
//表头信息显示居左
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); .
//表头信息显示居右
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignRight);
表头信息显示水平居中
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter );
表头信息显示可用空间文本对齐
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignJustify );