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);//加一

posted @ 2020-04-24 21:28  懒人状元  阅读(10168)  评论(0编辑  收藏  举报