查找作为QPointer的子成员

时间:2014-09-17 02:35:22

标签: c++ qt qpointer

我正在尝试使用findChildren从我的程序中提取参数列表。代码如下:

QList<QPointer<TParameter> > theFullParameterList;

foreach(TParameter *child, this->findChildren<TParameter* >())
{
    theFullParameterList << QPointer<TParameter>(child);
}

它编译得很好,但是当我在调试中进入(this)时,QPointer<TParameter>有几种成员类型,但我的theFullParameterList出现空白。 TParameter是一个自定义类。有没有办法找到QPointer范围内的那个班级的孩子?

1 个答案:

答案 0 :(得分:0)

几个问题:

1)当你致电findChildren时,你确定该类的这类实例没有被销毁吗?

2)您确定将父级设置为类实例吗?

我可以使用以下代码填充QList

MainWindow::MainWindow()
{
    for (int i = 0; i < 10; i++)
        new TParameter(this);
}

void MainWindow::on_pushButton_clicked()
{
    QList<QPointer<TParameter>> theFullParameterList;

    foreach(TParameter *child, findChildren<TParameter*>())
        theFullParameterList << QPointer<TParameter>(child);

    qDebug() << "Size of list:" << theFullParameterList.size();
}

输出:Size of list: 10