繁体   English   中英

如何使用new运算符跟踪在循环中创建的QLabel

[英]How to keep track of QLabel created in a loop using new operator

我正在使用 Qt 中的new运算符在循环内创建许多标签,如下所示:

QLabel *p;
for(int i=0; i<10; i++)
    {
    p = new QLabel(this);
    // ...
    }

现在发生了什么,当我使用p它指向序列中的最后一个标签但我想使用我的第一个标签。 如何跟踪每个标签?

您可以使用std::vector存储所有标签指针:

std::vector<QLabel*> labels;

for (int i=0; i<10; i++)
   labels.push_back(new QLabel(this));

可以像数组一样访问这些指针:

QLabel *first = labels[0];

或者通过使用迭代器:

std::vector<QLabel*>::iterator itr = labels.begin();
QLabel *first = *itr;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM