QTableWidget样式美化

QTableWidget样式美化:

Qt基础使用
说明:笔记为代码修改方式,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);//加一

参考资料

————————————————

1、版权声明:本文为CSDN博主「mark-puls」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cwj066/java/article/details/83344705
2、版权声明:本文为CSDN博主「老樊Lu码」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fanyun_01/java/article/details/78341615

原文地址:https://www.cnblogs.com/warm-home/p/12770345.html