Russian Qt Forum

Qt => Вопросы новичков => Тема начата: libertas от Март 27, 2014, 14:51



Название: QRadioButton
Отправлено: libertas от Март 27, 2014, 14:51
Всем привет.
У меня на форму вынесены три группы, в каждой по три значения QRadioButton. В этих группах я хочу задавать приоритет потоков.

Как мне можно занести значения радио кнопок в массив, который потом использовать для задания приоритета потока в функции CreateThread.

То есть я не понимаю, как мне проинициализировать массив prior[] значения радио баттонов на форме?

Спасибо.


Название: Re: QRadioButton
Отправлено: Bepec от Март 27, 2014, 15:06
QButtonGroup.


Название: Re: QRadioButton
Отправлено: libertas от Март 27, 2014, 19:50
Спасибо. Я сделал так:

массив для хранения приоритетов:

int prior[3];

и установка приоритета для потока в зависимости от выбранной радио баттон:

Код:
void MainWindow::on_Low_clicked()
{
    prior[0] = THREAD_PRIORITY_BELOW_NORMAL;
}

void MainWindow::on_Normal_clicked()
{
    prior[0] = THREAD_PRIORITY_NORMAL;
}

void MainWindow::on_High_clicked()
{
    prior[0] = THREAD_PRIORITY_ABOVE_NORMAL;
}


Название: Re: QRadioButton
Отправлено: Alexu007 от Март 28, 2014, 08:28
Это как то не кошерно, для каждого радиобутона отдельная функция. Я делал по другому: навешивал на все радиобутоны один обработчик клика, а в нем уже:
Код
C++ (Qt)
void Widget::MyEventRadioButtons()
{
   if(ui->radioButton_1->isChecked() == true) gfp->brate = 128;
   if(ui->radioButton_2->isChecked() == true) gfp->brate = 160;
   if(ui->radioButton_3->isChecked() == true) gfp->brate = 192;
   if(ui->radioButton_4->isChecked() == true) gfp->brate = 224;
   if(ui->radioButton_5->isChecked() == true) gfp->brate = 256;
   if(ui->radioButton_6->isChecked() == true) gfp->brate = 320;
}


Название: Re: QRadioButton
Отправлено: libertas от Март 28, 2014, 12:11
ну да, я тоже так думал. У меня радиобаттон находились в QGroupBox и событие для QGroupBox - clicked не давали результата.

А как Вы обработчик на весели на все радиобаттоны?


Название: Re: QRadioButton
Отправлено: kambala от Март 28, 2014, 13:04
кошерно будет через QSignalMapper


Название: Re: QRadioButton
Отправлено: libertas от Март 28, 2014, 13:19
Ок, спасибо!


Название: Re: QRadioButton
Отправлено: Alexu007 от Март 28, 2014, 16:34
А как Вы обработчик на весели на все радиобаттоны?


Код
C++ (Qt)
   QObject::connect(ui->radioButton_1, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
   QObject::connect(ui->radioButton_2, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
   QObject::connect(ui->radioButton_3, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
   QObject::connect(ui->radioButton_4, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
   QObject::connect(ui->radioButton_5, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
   QObject::connect(ui->radioButton_6, SIGNAL(clicked()), this, SLOT(MyEventRadioButtons()));
 

При клике мышой на любой radioButton вызывается один для всех обработчик MyEventRadioButtons(), в котором и делаем необходимые действия.


Название: Re: QRadioButton
Отправлено: libertas от Март 29, 2014, 14:25
Понятно, спасибо!