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);
}
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;
background: transparent;
border-style: none;
border-bottom: 1px solid #8B8B8B;
border-right: 1px solid red;
border-left: 1px solid red;
border-top: 1px solid #8B8B8B;
}
QTableWidget::item:selected[table_31="true"]{
background: transparent;
color: black;
}
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);
QHeaderView#hHeader{
min-height: 50px;
background-color: transparent;
}
QHeaderView::section#hHeader{
background-color: transparent;
border: 1px solid #8B8B8B;
border-radius: 0px;
font-size: 24px;
color: #1B1B1B;
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);
}
}