Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: unkeep от Апрель 24, 2013, 13:10



Название: группа с неопределённым количеством CheckBox
Отправлено: unkeep от Апрель 24, 2013, 13:10
Здравствуйте. Необходимо реализовать группу чекбоксов. Их количество берётся из хедэра таблицы (чекбокс соответствует колонке).
Вопросы:
1)какой контейнер лучше использовать?
2)как выравнивать динамически созданные чекбоксы встрочку?
3)как обрабатывать изменения всей группы, а не каждого чекбокса по отдельности(+как узнать какой именно чекбокс изменился)?

пока добавляю в
Код
C++ (Qt)
QFrame checkBoxs;
так :
Код
C++ (Qt)
void TextModuleEditorDialog::AddFilterCheckBoxs()
{
   for (int i=0;i<_visibleColumns;i++)
   {
       QCheckBox *cb = new QCheckBox(Modules::Columns::FieldsMap().value(i),_ui->checkBoxs);
   }
}

лепит один поверх другого :)


Название: Re: группа с неопределённым количеством CheckBox
Отправлено: mutineer от Апрель 24, 2013, 13:38
Для выравнивая в строчку используй QHBoxLayout


Название: Re: группа с неопределённым количеством CheckBox
Отправлено: kambala от Апрель 24, 2013, 18:42
QButtonGroup должно подойти


Название: Re: группа с неопределённым количеством CheckBox
Отправлено: Fregloin от Апрель 29, 2013, 11:00
лучше в таблицу загонять, так как количество виджетов заранее неизвестно, и если их будет достаточно много, то в лейауте они будут смотреться криво + появится возможность скролирования.
я так и делал. + намного упростится задача с хранением данных.
+ не нужно создавать чекбоксы, достаточно установить data(Qt::CheckRole) в соответтвующее значение.
почитаейте QTableWidget + data(Qt::CheckRole) - думаю то что Вам нужно


Название: Re: группа с неопределённым количеством CheckBox
Отправлено: unkeep от Май 02, 2013, 09:39
выбрал GroupBox для группировки. Храню контролы в Qlist. Как их обрабатывать одной процедурой? т.е как узнать по какому нажали? В


Название: Re: группа с неопределённым количеством CheckBox
Отправлено: alex312 от Май 02, 2013, 09:41
http://www.prog.org.ru/topic_24679_0.html