Как отслеживать QLabel, созданный в al oop, используя новый оператор - PullRequest
0 голосов
/ 17 февраля 2020

Я создаю много меток на основе al oop, используя оператор new в Qt, что-то вроде этого:

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

Теперь, что происходит, когда я использую p, это указывает на последний ярлык в последовательности, но я хочу использовать свой первый ярлык. Как я могу отслеживать каждый ярлык?

1 Ответ

2 голосов
/ 17 февраля 2020

Вы можете сохранить все метки-указатели, используя 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...