QTableWidget样式美化
QTableWidget样式美化:
说明:笔记为代码修改方式,value:代表值,tableWidget替代ui->tabelwidget[控件名称]
头文件#include <QTableWidget>
创建一个tablewidget
QTableWidget *tabelWidget = new QTableWidget ;
设置行数
tableWidget->setRowCount(value);
设置列数
tableWidget->setColumnCount(value);
QTableWidget设置表头内容
QStringList header;
header<<tr("value")<<tr("value")<<tr("value");
tableWidget->setHorizontalHeaderLabels(header);
设置充满表宽度[表格自动横向填充满控件]
tableWidget->horizontalHeader()->setStretchLastSection(true);
设置无边框
tableWidget->setFrameShape(QFrame::NoFrame);
设置不显示格子线
tableWidget->setShowGrid(false);
去除选中虚线框
tableWidget->setFocusPolicy(Qt::NoFocus);
设置垂直头不可见
tableWidget->verticalHeader()->setVisible(false);
设置水平、垂直滚动条样式
tableWidget->horizontalScrollBar()->setStyleSheet( “[美化内容参照QScrollArea样式美化]” );
tableWidget->verticalScrollBar()->setStyleSheet(“[美化内容参照QScrollArea样式美化]” );
修改表格编辑状态权限
tableWidget->setEditTriggers(QAbstractItemView::value);
value常用参数:
NoEditTriggers--不能对表格内容进行修改
CurrentChanged--任何时候都能对单元格修改
DoubleClicked--双击单元格
SelectedClicked--单击已选中的内容
AnyKeyPressed--按下任意键就能修改
设置表格选择方式
tableWidget->setSelectionBehavior(QAbstractItemView::value);
value常用参数:
SelectItems--选中单个单元格
SelectRows--选中一行
SelectColumns--选中一列)
单个选中和多个选中的设置
tableWidget->setSelectionMode(QAbstractItemView::value);
value常用参数:
NoSelection--不能选择
SingleSelection--选中单个目标
MultiSelection--选中多个目标
ExtendedSelection/ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选)
表格表头的显示与隐藏
tableWidget->verticalHeader()->setVisible(false); //隐藏列表头
tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头
设置表头字体及颜色
//获得水平方向表头的Item对象
QTableWidgetItem *columnHeaderItem = tableWidget->horizontalHeaderItem(0);
columnHeaderItem->setFont(QFont("value")); //设置字体
columnHeaderItem->setBackgroundColor(QColor(0,0,0)); //设置单元格背景颜色
columnHeaderItem->setTextColor(QColor(0,0,0)); //设置文字颜色
在单元格里加入控件:
tableWidget->setCellWidget(value x , value y , [你的控件]);
设置单元格字体颜色、背景颜色和字体字符:
QTableWidgetItem *item = new QTableWidgetItem("显示的文字");
item->setBackgroundColor(QColor(0,0,0));
item->setTextColor(QColor(0,0,0));
item->setFont(QFont("value"));
tableWidget->setItem(0,0,item);
//所有的单元格都使用
tableWidget->setFont(QFont("value"));
合并单元格
//参数为: 要改变单元格的1行数、2列数,要合并的3行数、4列数
tableWidget->setSpan(0, 0, 3, 1) ;
设置单元格宽高
tableWidget->setColumnWidth(3,200); //行
tableWidget->setRowHeight(3,60); //列
//行和列的大小设为与内容相匹配
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
调整表格行宽
//使列完全填充并平分
tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
//行自适应宽度
tableWidget->verticalHeader()->setResizeMode(QHeaderView::Stretch);
//根据内容调整列宽
tableWidget->resizeColumnsToContents();
设置某列列宽
tableWidget->headerView->resizeSection(0,284);//设置第一列宽
内容清除
tableWidget->clear();//清除所有可见数据(包括表头),行还在
tableWidget->clearContents();//只清除表中数据,不清除表头内容
tableWidget->setRowCount( column );//或者直接设置行数为0,则所有行内容清除掉
表格排序,将某列按升序/降序的方式排列
tableWidget->sortByColumn( column , Qt::AscendingOrder);
获取某一格的内容
QString proName = tableWidget->item(row, column)->text();
添加一行
int row = tableWidget->rowCount();//获取表格中当前总行数
tableWidget->setRowCount(row+1);//加一