Russian Qt Forum

Qt => Общие вопросы => Тема начата: IzoLda от Январь 11, 2011, 07:48



Название: Связать combobox c checkbox...
Отправлено: IzoLda от Январь 11, 2011, 07:48
Здравствуйте!
Я недавно начала изучение Qt...На данный момент я делаю систему авторизации с распределением прав доступа.У меня есть combobox и еще 4-е checkbox.В combobox выбирается пользователь в зависимости от которого галочки на checkbox должны меняться. Не мог бы кто нить подсказать как это осуществить???


Название: Re: Связать combobox c checkbox...
Отправлено: Пантер от Январь 11, 2011, 08:22
У комбобокса есть сигналы
void   activated ( int index )
void   activated ( const QString & text )
Коннектишь нужный из них к своему слоту, в котором и меняешь состояние чекбоксов. Про сигналы/слоты читай в ассистенте.


Название: Re: Связать combobox c checkbox...
Отправлено: IzoLda от Январь 11, 2011, 08:44
Спасибо за ответ!
Я делала так:
connect(combobox, SIGNAL(activated(int index)), this, SLOT(Choose(int index)));
где Choose(int index)
void Authorisation::Choose(int index)
{
    if ( Level[index] == "1" )
    {
        AdminCheckBox->setChecked(true);
        EditCheckBox->setChecked(true);
   ContCheckBox->setChecked(true);
   ViewCheckBox->setChecked(true);
    }
     if ( Level[index] == "2" )
     ...
}
в Level[index] у меня считывается уровень доступа соответствующего пользователя...так не получается,в чем ошибка подскажите,пож-та!!


Название: Re: Связать combobox c checkbox...
Отправлено: Fat-Zer от Январь 11, 2011, 09:02
если Level - массив QString или другого умного строкого типа, то должно работать... если массив интов, то уберите квычки... если чаров, то ковычки должны быть одинарные... если char*, то так не пойдёт... плюс могут быть ещё какие-то проблеммы...

ЗЫ: вроде не одобряется писать переменные при связывании сигнал-слота...
connect(combobox, SIGNAL(activated(int)), this, SLOT(Choose(int)));


Название: Re: Связать combobox c checkbox...
Отправлено: IzoLda от Январь 11, 2011, 09:13
 :D работает!!!Большое спасибо!!!