Qt:QTableWidget 使用的相关问题

QTableWidget可以用来显示表格数据 是一种相对来说比较常用的部件。和QTableView相比,其在内部已添加了标准模型 不需要用户在添加模型。虽然灵活度下降 但是使用相对方便。网上有很多资料讲了该部件用法(参考文献1)。这里讲一下自己使用时 遇到的一些问题:

  1  不能设置表头的背景颜色。

    虽然参考资料中给出了设置表头背景色的办法 但使用起来却无效。在论坛中看到有人讨论(参考文献2)大概说只有在QMainWindow上使用该方法才有效

    可以通过设置样式表的方式来改变背景色: 

ui->SeedtableWidget->horizontalHeader()->setStyleSheet( "QHeaderView::section{background-color:transparent}" );

2 在获取Cell的文本时候 一定要做判断 Cell是否为空  否则程序会异常   

QTableWidgetItem * QTableWidget::item(int row, int column) const
Returns the item for the given row and column if one has been set; otherwise returns 0.

See also setItem().

原因: Cell为空的话 此时的指针指向的地址为0 所以空指针获取不到文本的。

做如下判断:

if(ui->tableWidget->item(i,j)==NULL||             //判断指向该cell的指针是否为空  
             (ui->tableWidget->item(i,j)&&  
              ui->tableWidget->item(i,j)->text()==tr(""))  //判断该cell的text是否为空  
{  
    //TODO:edit your code here  
}  

参考文献:

QTablewidget使用详情

表头背景色设置

你可能感兴趣的:(qt)