Russian Qt Forum
Ноябрь 24, 2024, 14:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGroupBox + QChekBox :: получение номеров чекнутых боксов.  (Прочитано 5793 раз)
chron1c
Гость
« : Июль 23, 2012, 16:47 »

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

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

Как посоветуете поступить?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 23, 2012, 16:50 »

посоветую поучить С++. QList<QCheckBox *> checkBoxes;
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
mutineer
Гость
« Ответ #2 : Июль 23, 2012, 16:51 »

Код:
QList<*QCheckBox> *checkBoxes;
Что должна значить эта строка вообще?

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

Присоединяюсь к совету выше
Записан
chron1c
Гость
« Ответ #3 : Июль 23, 2012, 17:16 »

Боже мой Веселый
А ведь куча указателей и так работает в программе.
Что-то я жестоко затупил.
Какой стыд, явно нужно высыпаться.
Спасибо Смеющийся
Записан
DLobanov
Гость
« Ответ #4 : Июль 24, 2012, 11:03 »

Можешь попробовать QObject::sender().
Возвращет объект инициатора сигнла, а затем уже определить его имя.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #5 : Июль 24, 2012, 11:05 »

последнее предложение наиболее разумное, т.к. не нужно хранить список указателей на чекбоксы (если конечно их не нужно как то модифицировать в будущем).
Записан
mutineer
Гость
« Ответ #6 : Июль 24, 2012, 11:08 »

последнее предложение наиболее разумное, т.к. не нужно хранить список указателей на чекбоксы (если конечно их не нужно как то модифицировать в будущем).

И как в таком случае узнать какие из 15 чекбоксов чекнуты, а какие нет?
Записан
DLobanov
Гость
« Ответ #7 : Июль 24, 2012, 11:33 »

Тогда надо хранить и укзатели и опрашивать их
Записан
chron1c
Гость
« Ответ #8 : Август 04, 2012, 22:44 »

Затупил там жестоко при объявлении списка указателей, а так-то всё просто сделал.
Список указателей на существующие чекбоксы -> опрашиваю isChecked() ли они -> возвращаю индексы чекнутых элементов.
Записан
andrew.k
Гость
« Ответ #9 : Август 04, 2012, 22:56 »

все что тебе нужно уже реализовано.
QButtonGroup
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 23.