QTableWidget表头、内容字体大小、颜色、背景颜色等设置
主要完成设置:
1、是否显示格子线。
2、禁止编辑
3、默认高度,宽度
4、选中模式
5、排序
6、某列是否设置选中框
7、某个单元格单独设置字体
8、表头内容设置
9、表格数据填充示例
扫描二维码关注公众号,回复:
10844556 查看本文章
10、隐藏横向表头
11、qss样式表设置字体、颜色示例等。
运行效果如下
下面直接上代码,完全可以直接拷贝用:
QString qssTV = "QTableWidget::item:hover{background-color:rgb(92,188,227,200)}"
"QTableWidget::item:selected{background-color:#1B89A1}"
"QHeaderView::section,QTableCornerButton:section{ \
padding:3px; margin:0px; color:#DCDCDC; border:1px solid #242424; \
border-left-width:0px; border-right-width:1px; border-top-width:0px; border-bottom-width:1px; \
background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); }"
"QTableWidget{background-color:white;border:none;}";
//ui->tableWidget->setShowGrid(true); //设置显示格子线
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选中的方式
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止编辑
ui->tableWidget->horizontalHeader()->setStretchLastSection(true); //行头自适应表格
ui->tableWidget->horizontalHeader()->setFont(QFont("song", 12));
//点击表时不对表头行光亮(获取焦点)
ui->tableWidget->horizontalHeader()->setHighlightSections(false);
//设置表头字体加粗
QFont font = ui->tableWidget->horizontalHeader()->font();
font.setBold(true);
ui->tableWidget->horizontalHeader()->setFont(font);
//ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:lightblue;}"); //skyblue设置表头背景色
//ui->tableWidget->setStyleSheet("selection-background-color:lightblue;"); //设置选中背景色
ui->tableWidget->setStyleSheet(qssTV);
ui->tableWidget->horizontalHeader()->setHighlightSections(false); //点击表头时不对表头光亮
ui->tableWidget->setSelectionMode(QAbstractItemView::ContiguousSelection);//选中模式为多行选中
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
//所有单元格的字体 设置成一样
ui->tableWidget->setFont(QFont("song", 12));
ui->tableWidget->setRowCount(1); //设置行数
ui->tableWidget->setColumnCount(8); //设置列数
ui->tableWidget->setWindowTitle("TABLE演示");
QStringList header;
header<<"序号"<<"名称"<<"设备ID"<<"设备IP"<<"设备端口"<<"型号"<<"厂家"<<"备注";
ui->tableWidget->setHorizontalHeaderLabels(header);
//去掉默认行号 可以用horizontalHeader() ->setVisible(false)隐藏横向表头
QHeaderView *header1 = ui->tableWidget->verticalHeader();
header1->setHidden(true);
//设置单元格大小
ui->tableWidget->horizontalHeader()->setDefaultSectionSize(50); //设置默认宽度
ui->tableWidget->verticalHeader()->setDefaultSectionSize(30); //设置一行默认高度
ui->tableWidget->setColumnWidth(1,110);
ui->tableWidget->setColumnWidth(2,110);
ui->tableWidget->setColumnWidth(4,180);
ui->tableWidget->setColumnWidth(5,110);
ui->tableWidget->setColumnWidth(6,80);
ui->tableWidget->setColumnWidth(7,80);
ui->tableWidget->setSortingEnabled(true); //启动排序
for (int crowCount = 0; crowCount < 20; ++crowCount)
{
//插入数据
QTableWidgetItem *check=new QTableWidgetItem(QString::number(crowCount));
check->setCheckState(Qt::Unchecked); //是否设置选中框
ui->tableWidget->insertRow(crowCount);
check->setText(QString::number(crowCount)); //显示序号
ui->tableWidget->setItem(crowCount,0,check); //插入复选框
for(int j=1; j<8; j++ )
{
ui->tableWidget->setItem(crowCount,j,new QTableWidgetItem(QString::number(j)));
}
}
单元格单独设置字体方法:
QTableWidgetItem *item = new QTableWidgetItem;
item->setText(strDev);
item->setFont(QFont("song", 14));
ui->tableWidget->setItem(crowCount,j,item);
备注:实战示例,解疑答惑。
--不间端地思考,实时地批判你的工作!