Russian Qt Forum

Qt => Общие вопросы => Тема начата: chron1c от Июль 23, 2012, 16:47



Название: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: chron1c от Июль 23, 2012, 16:47
Снова я с очередным глупым вопросом.
Название темы не очень, да.
Так вот, в чём суть.
Мне нужно динамически добавлять в групбокс чекбоксы, а потом каким-то образом узнавать какие из них чекнуты.
Добавлял в дизайнере групбокс и пытался ставить его родитилем при создании чекбоксов - не получилось ( ещё бы. )
В итоге сделал виджет, в котором прописан групбокс и в котором добавляю чекбоксы через слот.
Через детей не получилось проверять чекнуты они или нет, решил завести список указателей на существующие чекбоксы и бегать по нему, не обращаясь к групбоксу вообще.
Не получилось.
При попытке объявления списка в хедере как:
Код:
QList<*QCheckBox> *checkBoxes;
Компилятор ругается. Пробовал так:
Код:
QList<QCheckBox> *checkBoxes;
, но тогда он пишет, что не может обратиться к какому-то приватному члену QCheckBox.
(Объявления выше - это в хедере которые, дублируются в .срр с new, естественно )

Да и вообще как-то не получается создать QList, который бы хранил указатели на что-либо.(пытался сделать QList<*QList<int>>) .

Как посоветуете поступить?


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: kambala от Июль 23, 2012, 16:50
посоветую поучить С++. QList<QCheckBox *> checkBoxes;


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: mutineer от Июль 23, 2012, 16:51
Код:
QList<*QCheckBox> *checkBoxes;
Что должна значить эта строка вообще?

Если ты хотел сделать список указателей, то делается он как
Код:
QList<QCheckBox*> *checkBoxes;
или
Код:
QList<QCheckBox*> checkBoxes;

Присоединяюсь к совету выше


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: chron1c от Июль 23, 2012, 17:16
Боже мой :D
А ведь куча указателей и так работает в программе.
Что-то я жестоко затупил.
Какой стыд, явно нужно высыпаться.
Спасибо ;D


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: DLobanov от Июль 24, 2012, 11:03
Можешь попробовать QObject::sender().
Возвращет объект инициатора сигнла, а затем уже определить его имя.


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: Fregloin от Июль 24, 2012, 11:05
последнее предложение наиболее разумное, т.к. не нужно хранить список указателей на чекбоксы (если конечно их не нужно как то модифицировать в будущем).


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: mutineer от Июль 24, 2012, 11:08
последнее предложение наиболее разумное, т.к. не нужно хранить список указателей на чекбоксы (если конечно их не нужно как то модифицировать в будущем).

И как в таком случае узнать какие из 15 чекбоксов чекнуты, а какие нет?


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: DLobanov от Июль 24, 2012, 11:33
Тогда надо хранить и укзатели и опрашивать их


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: chron1c от Август 04, 2012, 22:44
Затупил там жестоко при объявлении списка указателей, а так-то всё просто сделал.
Список указателей на существующие чекбоксы -> опрашиваю isChecked() ли они -> возвращаю индексы чекнутых элементов.


Название: Re: QGroupBox + QChekBox :: получение номеров чекнутых боксов.
Отправлено: andrew.k от Август 04, 2012, 22:56
все что тебе нужно уже реализовано.
QButtonGroup