考虑使用以下代码在QWidget中设置布局:

setLayout(new QVBoxLayout);


然后需要检索它(向布局添加更多内容)。这是通过以下代码完成的:

QHBoxLayout *hLayoutTime(new QHBoxLayout);
qobject_cast<QVBoxLayout*>(layout())->addLayout(hLayoutTime);


qobject_cast是在此处使用的适当类型的转换吗?

最佳答案

为了避免不必要的转换,请像下面这样编写:

void YourWidget::setupContents()
{
     QVBoxLayout *vLayout = new QVBoxLayout(this); // effectively this does setLayout(new QVBoxLayout);

     QHBoxLayout *hLayoutTime(new QHBoxLayout);
     vLayout->addLayout(hLayoutTime);
     … … …
}

10-08 11:36