LINUX.ORG.RU

QT: создание объектов в цикле


0

1

я пытаюсь разобраться с QT нужно создать 10 (20, 30, N) кнопок в виджете через цикл, не объявляя их в заголовочном файле каждый в отдельности. я пытался создать массив кнопок QPushButton cells[10]; но при попытке инициализировать их через cells = new QPushButton(tr( «x»)); пишет много много ошибок.

помогите разобраться, как создать произвольное количество объектов в цикле, спасибо. в манах искал, всякие кулисты изучал и кувесторы но что то без примера грустно.

Код инициализации подробнее приведите. А то несколько непонятно - вы что, массиву присваиваете указатель?

cattail
()

> cells = new QPushButton(tr( «x»));

Начни изучение с C++ без Qt.
Но если так хочется Qt, то воть тебе пример с QList:

    const int n = 30;
    QList<QPushButton*> buttons; // a lot of them
    buttons.reserve(n);
    for (int i = 0; i < n; ++i) {
        buttons << new QPushButton(tr("x"));
    }
    qDeleteAll(buttons);
    buttons.clear();

rival ★★
()

>разобраться с QT

Создание объектов для QuickTime надо делать через видеоредактор.

anonymous
()
Ответ на: комментарий от anonymous

хихихихи шутку понял, не дурак, дурак бы не понял

preepunk
() автор топика

Надо бы язык выучить для начала.

yoghurt ★★★★★
()

> я пытаюсь разобраться с QT

Вам надо пытаться разобраться с С++ и уже только потом с Qt

anonymous
()

много много ошибок

Что за ошибки хоть?

в манах искал, всякие кулисты изучал и кувесторы но что то без примера грустно.

в каких именно манах ты это искал? по g++?

mi_estas
()

Для начала нужно объявить массив объектов

QPushButton *cells[n];

затем в цикле их создать

for(int i=0;i<n;i++) cells[i] = new QPusnButton();

У меня такая конструкция работает с фиксированным n. Будет и у тебя работать, если ты создашь массив(не объявляя его в заголовочном файле), когда будешь знать n. Однако в этом случае, доступ к элементам массива будет только внутри функции, где ты их создашь.

GSA
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.