簡體   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