1.首先使用tablewidget,初始化
void MainWindow::initLogReList()
{
ui->tableWidget->setColumnCount(3); //设置列数
//ui->tableWidget->setRowCount(10); //设置行数
ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
//设置表头
QStringList header1;
header1<<QStringLiteral("操作时间")<<QStringLiteral("级别")<<QStringLiteral("操作信息");
ui->tableWidget->setHorizontalHeaderLabels(header1);
ui->tableWidget->horizontalHeader()->setFixedHeight(23); //设置表头的高度
QFont font1;
font1.setBold(true);
ui->tableWidget->horizontalHeader()->setFont(font1);//设置表头字体加粗
//设置列宽可拖动
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Interactive);
//设置table的水平滚动条
ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//设置列宽
ui->tableWidget->horizontalHeader()->resizeSection(0, 100); //设置表头第1列的宽度
ui->tableWidget->horizontalHeader()->resizeSection(1, 80); //设置表头第2列的宽度
ui->tableWidget->horizontalHeader()->resizeSection(2, 200); //设置表头第3列的宽度
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//最后一格靠边
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);//列宽自适应内容
//ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
//ui->tableWidget->verticalHeader()->hide();
ui->tableWidget->verticalHeader()->setDefaultSectionSize(20); //设置每行高度
//ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//使表头列完全填充并平分
//ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);//使表头行完全填充并平分
//ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //不能对表格内容进行修改
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选择,设置选择行为时每次选择一行
ui->tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //按下ctrl和shift后可以选择多行
//ui->tableWidget->setSelectionMode(QAbstractItemView::ContiguousSelection); //按下shift后可以选择多行
//ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //只能选择一行
//ui->tableWidget->setSelectionMode(QAbstractItemView::MultiSelection); //可以选择多行
//ui->tableWidget->resizeColumnsToContents(); //根据内容调整列宽
//for (int i=0; i<23; i++)
//{
// ui->tableWidget->horizontalHeader()->setSectionResizeMode(i, QHeaderView::ResizeToContents); //第i列的长度与内容匹配
//}
//点击表时不对表头行光亮(获取焦点)解决表头出现塌陷的问题,如颜色变化,字体变粗等
ui->tableWidget->horizontalHeader()->setHighlightSections(false);
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
}
2.然后写接口插数据
void MainWindow::slot_insertLogReList(QString op_info, QString op_time, QString op_level)
{
//QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")
int curRow = 0;
ui->tableWidget->insertRow(curRow);
ui->tableWidget->setItem(curRow,0,new QTableWidgetItem(op_time));
ui->tableWidget->setItem(curRow,1,new QTableWidgetItem(op_level));
ui->tableWidget->setItem(curRow,2,new QTableWidgetItem(op_info));
ui->tableWidget->item(curRow,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);//内容居中
ui->tableWidget->item(curRow,1)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
ui->tableWidget->item(curRow,2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
}
虽然简单,但是只有自己动手下次使用才会有思路。