QRadioButton Array проблема - PullRequest
       1

QRadioButton Array проблема

2 голосов
/ 27 марта 2012

Я создал массив QRadioButton и попытался запустить его с помощью шести радиокнопок.В тот момент, когда я заполняю массив объектом, я не получаю никаких предупреждений или ошибок.Но когда я пытаюсь увидеть, установлен ли переключатель, я получаю сбой для всех переключателей, но не для первого элемента из массива.Вот код:

// rd is declared in .h as  QRadioButton *rd[6];

   for (int c=0,c<6,c++) {
           rd[c] = new QRadioButton("name");
           verticalBox->addWidget(rd[c]);  // it's a layout
   }

Тогда сделайте проверку:

  if (rd[0]->isChecked() == true)
        qDebug()<<"checked";
    else if (rd[1]->isChecked() == true)
        qDebug()<<"checked";
    else if (rd[2]->isChecked() == true)
        qDebug()<<"checked";
   else if (rd[3]->isChecked() == true)
        qDebug()<<"checked";
    else if (rd[4]->isChecked() == true)
        qDebug()<<"checked";
    else if (rd[5]->isChecked() == true)
        qDebug()<<"checked";

1 Ответ

2 голосов
/ 27 марта 2012

Не знаю точно, что является причиной вашего сбоя, но я предлагаю вам использовать возможности C ++ и контейнеры Qt вместо манипулирования массивами в стиле C.Попробуйте это:

// rd is declared in .h as  QList<QRadioButton*> rd;
for (int i=0; i<6; ++i) {
  QRadioButton * radio_btn = new QRadioButton("name");
  rd << radio_btn; // append radio button to the list
  verticalBox->addWidget(radio_btn);
}

Остальная часть вашего кода должна выполняться нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...