QTableCellWidget未隐藏

QTableCellWidget未隐藏,qt,qtablewidget,Qt,Qtablewidget,我已经使用setCellWidget方法在QTableWidget中放置了一个小部件 但是当我调用cellWidget(row,col)->hide()或cellWidget(row,col)->setEnable(false)小部件没有隐藏 有人能提出解决办法吗?我使用的是Qt5.5.0您可以通过覆盖派生的QTableWidget类中的paintEvent来绕过提到的bug,并在QTableWidget完成绘制后隐藏这些小部件 DerivedQTableWidget::paintEvent(Q

我已经使用
setCellWidget
方法在
QTableWidget
中放置了一个小部件

但是当我调用
cellWidget(row,col)->hide()或
cellWidget(row,col)->setEnable(false)
小部件没有隐藏


有人能提出解决办法吗?我使用的是Qt5.5.0

您可以通过覆盖派生的QTableWidget类中的paintEvent来绕过提到的bug,并在QTableWidget完成绘制后隐藏这些小部件

DerivedQTableWidget::paintEvent(QPaintEvent * e)
{
   QTableWidget::paintEvent(e);

   // do the hiding here
}

很抱歉我的回答太晚,但这可能对其他人有用: 最简单的工作解决方案是更改小部件的父级。可以制作一个假对象并将其设置为父对象

QWidget* fake= new QWidget;
QWidget* cell = ui->tableWidget->cellWidget(row, col);
cell ->setParent(fake);

我认为是Qt bug,这里有报道: