QT自定义QTABLEWIDGET
QT自定义QTABLEWIDGET
1.实现效果
2.具体实现:
(1)表格QTABELWIDGET
QTabelWidget *table=new QTableWidget(11,6); //设置行列个数
table->setShowGrid(false); //是否显示内部网格线条
table->setFixedSize(1782,698); //设置表格固定大小
table->setAlternatingRowColors(1); //是否显示交替颜色
table->setEditTriggers(QAbstractItemView::NoEditTriggers); //是否可编辑
table->setSelectionMode(QAbstractItemView::NoSelection); //是否可选中
table->setProperty("table_31",true); //设置分类
for(int i=0; i<11; i++ ){ //设置行高,列宽
table->setRowHeight(i,58);
}
for(int i=0; i<6; i++ ){
table->setColumnWidth(i,200);
}
qss样式表
QTableWidget[table_31="true"]{
border: 1px solid #8B8B8B; /*表格外边框*/
padding: 0px; /*内边距*/
margin: 0px; /*外边距*/
color: #575757; /*表格文本的颜色*/
background: white; /*表格背景色*/
alternate-background-color: lightgray; /*表格交替色*/
gridline-color: #8B8B8B; /*网格边框*/
font-size: 24px; /*表格文本大小*/
border-radius: 20px; /*表格边框弧度*/
font-family: "Microsoft YaHei"; /*表格文本字体*/
}
QTableWidget::item[table_31="true"]{
border-radius: 0px; /*item 弧度*/
background: transparent; /*item 背景色*/
border-style: none; /*去除边框*/
border-bottom: 1px solid #8B8B8B; /*底 边框*/
border-right: 1px solid red; /*右 边框*/
border-left: 1px solid red; /*左 边框*/
border-top: 1px solid #8B8B8B; /*顶 边框*/
}
/*item 选中时*/
QTableWidget::item:selected[table_31="true"]{
background: transparent;
color: black;
}
/*item 悬停*/
QTableWidget::item:hover[table_31="true"]{
background: transparent;
color: black;
}
/*垂直表头和水平表头相交的单元格*/
QTableWidget[table_31="true"] QTableCornerButton::section{
background: white;
border: 1px solid #8B8B8B;
}
(2)表头QHEADERVIEW
//水平表头
table->horizontalHeader()->setVisible(true); //设置表头是否可见
table->horizontalHeader()->setStretchLastSection(true); //自动调整对齐右边边界
table->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter | Qt::AlignVCenter); //表头文本对齐方式
table->horizontalHeader()->setObjectName("hHeader"); //表头对象名
//垂直表头
table->verticalHeader()->setVisible(false);
table->verticalHeader()->setStretchLastSection(true); //自动调整对齐底部边界
table->verticalHeader()->setDefaultAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
table->verticalHeader()->setObjectName("vHeader");
//设置表头文本
QStringList header;
header<<"A"<<"B"<<"C"<<"D"<<"E"<<"F";
table->setHorizontalHeaderLabels(header);
header.clear();
header<<"A"<<"B"<<"C"<<"D"<<"E"<<"F"<<"G"<<"H"<<"I"<<"J"<<"K";
table->setVerticalHeaderLabels(header);
qss样式表
/*水平表头*/
QHeaderView#hHeader{
min-height: 50px; /*表头最小高度*/
background-color: transparent;
}
/*表头section*/
QHeaderView::section#hHeader{
background-color: transparent;
border: 1px solid #8B8B8B;
border-radius: 0px;
font-size: 24px;
color: #1B1B1B;
/*border-style:none;*/
border-bottom: 1px solid #8B8B8B;
border-right: 1px solid blue;
border-left: 1px solid blue;
border-top: 1px solid blue;
}
/*垂直表头*/
QHeaderView#vHeader{
min-width: 50px;
background: white;
}
QHeaderView::section#vHeader{
background-color: white;
border: 1px solid #8B8B8B;
border-radius: 0px;
border-left-color: white;
font-size: 24px;
font-family: "Microsoft YaHei";
}
(3)插入数据
for(int i=0; i<11; i++){
for(int j=0; j<6; j++){
QTableWidgetItem *tab_item=new QTableWidgetItem("Jan");
tab_item->setTextAlignment(Qt::AlignCenter);
table->setItem(i,j,tab_item); //文本
//table->setItem(0,1,new QTableWidgetItem(QIcon(":/Image/IED.png"), "Jan's month")); //图片
//table->setCellWidget(0,0,new QLabel("Love")); //label
}
}
版权声明:本文为a1356467原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a1356467/article/details/106919301