[英]How to keep track of QLabel created in a loop using new operator
I am creating many labels based inside a loop using new
operator in Qt, something like this:我正在使用 Qt 中的new
运算符在循环内创建许多标签,如下所示:
QLabel *p;
for(int i=0; i<10; i++)
{
p = new QLabel(this);
// ...
}
Now what is happening, when I am using p
it points to the last label in the sequence but I want to use my first label.现在发生了什么,当我使用p
它指向序列中的最后一个标签但我想使用我的第一个标签。 How can I keep track of every label?如何跟踪每个标签?
You could store all Label-pointer using std::vector
:您可以使用std::vector
存储所有标签指针:
std::vector<QLabel*> labels;
for (int i=0; i<10; i++)
labels.push_back(new QLabel(this));
Accessing these pointers can be done array-like:可以像数组一样访问这些指针:
QLabel *first = labels[0];
Or by using iterators:或者通过使用迭代器:
std::vector<QLabel*>::iterator itr = labels.begin();
QLabel *first = *itr;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.