介绍
QTabWidget 是qt中 常用的一个表格组件,在展示列表以及部分详细信息的时候可以用它,他的样式及用途都比较广泛,它独特之处在他内部已经将表头和表格内容分开,我们在使用的过程中也可以直接是用默认的表头(当然表头也是可以隐藏的,可以根据我们自己的需求来设计它)。他的表头包括行标头和列表头。
// 设置表头
QTableWidgetItem *headerItem;
QStringList headerText;
headerText<<"名称1"<<"名称2"<<"分类"<<"作者";
ui->tableWidget->setColumnCount(headerText.count());//都会认知表头数量
// ui->tableWidget->horizontalHeader()->setSortIndicator(0, Qt::AscendingOrder); 用于设置水平表头 verticalHeader 列表头
ui->tableWidget->horizontalHeader()->setSortIndicatorShown( true );//打开表头排序
ui->tableWidget->horizontalHeader()->setClickable( true ); //表头可以通过点击进行排序
connect(headerGoods, SIGNAL(sectionClicked( int )), _nodeTableWidget, SLOT (sortByColumn( int )));
在表头添加文字 以及做一些美化
for (int i =0;i<ui->tableWidget->columnCount();i++) { //每一行的文字
headerItem = new QTableWidgetItem(headerText.at(i));
QFont font = headerItem->font();
font.setBold(true);
font.setPointSize(14);
headerItem->setTextColor(Qt::white);
headerItem->setFont(font);
ui->tableWidget->setHorizontalHeaderItem(i,headerItem); //水平表头
}
ui->tableWidget->horizontalHeader()->setMinimumHeight(44);
ui->tableWidget->verticalHeader()->*setVisible*(false);//
表头美化:
"QHeaderView::down-arrow {subcontrol-position: center right;//设置内容的位置
image: url(://tu.png);//在表头添加图片内容
padding-right: 8px;//设置边距}"
表格内部美化:
ui->tableWidget->setAlternatingRowColors(true); // 隔行变色
ui->tableWidget->setPalette(QPalette(QColor(245,249,249))); // 设置隔行变色的颜色
这里的颜色是设置的是隔行变色的第二个颜色,默认为白色
ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);//禁止编辑
在表格禁止修改时使用
ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
this->setFocusPolicy(Qt::NoFocus); //选中单元格时,不出现虚框
这句话在使用tableWidget 时一定要加,否则他的默认会在选中的每一个单元上有虚线出现,奇丑无比,可以通过这句阻止他的出现。
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//点击选择行
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //设置只能选择一行
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置内容不可更改
在单元格中设置按钮
在QTableWidget中添加控件
**tableWidget->setCellWidget(0,0,pBtn); **
第一个参数是指按钮所在的行
第二个参数是按钮所在的列
第三个参数是按钮的名称
当然 这个按钮可以换成任何一个控件,包括把它换成一个界面。
本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓