QT学记:QTableWidget 表格控件的用法

//故障表格设置
ui->tbFualt->setColumnCount(4);//设置列数,不设置行数,行数动态增加
ui->tbFualt->setRowCount(16);
ui->tbFualt->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
ui->tbFualt->setHorizontalHeaderLabels(QStringList()<<"序号"<<"时间"<<"模块编号"<<"故障详情");
ui->tbFualt->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tbFualt->resizeColumnsToContents();//自动布局
//去掉行号
QHeaderView* tbReal_header3 = ui->tbFualt->verticalHeader();
tbReal_header3->setHidden(true);
//单元格不可编辑
ui->tbFualt->setEditTriggers(QAbstractItemView::NoEditTriggers);
//去掉边框
ui->tbFualt->setFrameShape(QFrame::NoFrame);
//不显示格子线
ui->tbFualt->setShowGrid(false);
//隔行变色
ui->tbFualt->setAlternatingRowColors(true);
//点击表头,不对表头亮光
ui->tbFualt->horizontalHeader()->setHighlightSections(false);
ui->tbFualt->setColumnWidth(0,70);//设置第1列的宽度
ui->tbFualt->setColumnWidth(1,150);//设置第2列的宽度
ui->tbFualt->setColumnWidth(2,70);//设置第3列的宽度
ui->tbFualt->setColumnWidth(3,170);//设置第4列的宽度


//每次加载数据前清空表格数据
if(ui->tbFualt->rowCount() > 0)
{
    for (int i= ui->tbFualt->rowCount() -1; i>=0; i--) {
  ui->tbFualt->removeRow(i);
     }
}
//给表格赋值
int index = 0;
for (DeviceFault* item: faultList) {
   if(item)
   {
       int col = 0;
  ui->tbFualt->insertRow(index);
  ui->tbFualt->setItem(index,col,new QTableWidgetItem(QString::number(index +1)));
  col++;
  ui->tbFualt->setItem(index,col,new QTableWidgetItem(item->dateTime));
  col++;
  ui->tbFualt->setItem(index,col,new QTableWidgetItem(item->ID));
  col++;
  ui->tbFualt->setItem(index,col,new QTableWidgetItem(item->faultInfo));
  col++;
 }
 index++;
}

//设置表格行样式
if(faultList.size() > 0)
{
   for(int i = 0; i<index; i++)
   {
  ui->tbFualt->setRowHeight(i,40);
  for (int j=0;j<4;j++) {
  //水平竖直居中
  ui->tbFualt->item(i,j)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
     }
   }
}

 

posted @ 2023-01-05 14:32  冰冰影  阅读(325)  评论(0编辑  收藏  举报