如何从Qt中的QHBoxLayout中提取小部件

时间:2015-09-30 19:10:51

标签: qt

我有一个TableWidget,我在其中添加了这样的小部件:

QLabel *l = new QLabel("TEST");
QWidget *widget = new QWidget();
QHBoxLayout *hbox = new QHBoxLayout();

hbox->addWidget(l);
hbox->setAlignment(Qt::AlignCenter);
hbox->setContentsMargins(0,0,0,0);
widget->setLayout(hbox);

ui->tableWidget->setCellWidget(0, 0, widget);

当双击一个单元格时,我会捕获该事件,并想知道它是什么QLabel。

但是如何再次提取它或者我是否必须提取它?

1 个答案:

答案 0 :(得分:1)

auto    widget = ui->tableWidget->cellWidget(ui->tableWidget->currentRow(), ui->tableWidget->currentColumn()); // if mode is SingleSelection
auto    hbox = widget->layout();
auto    label = qobject_cast<QLabel *>(hbox->itemAt(0)->widget());