QTableCellWidget没有隐藏

时间:2015-11-03 06:38:22

标签: qt qtablewidget

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

但是当我呼叫cellWidget(row,col)->hide()cellWidget(row,col)->setEnable(false)时,小部件并未隐藏。

有人可以提出解决方案吗?我使用的是Qt 5.5.0

2 个答案:

答案 0 :(得分:0)

您可以通过覆盖派生的QTableWidget类中的paintEvent并在QTableWidget完成绘制后隐藏窗口小部件来绕过上述错误。

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

   // do the hiding here
}

答案 1 :(得分:0)

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

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