Russian Qt Forum

Qt => Базы данных => Тема начата: alina от Декабрь 25, 2011, 18:10



Название: Выборка из БД по клику на кнопке
Отправлено: alina от Декабрь 25, 2011, 18:10
Добрый день!
Необходимо сделать следующее: по изменению значения в ComboBox сделать выборку необходимых значений из БД, но вывести в TableView по нажатию на кнопку. Делаю следующим образом:

{.......
connect(ui->cbBrigada, SIGNAL(currentIndexChanged(int)), this, SLOT(Brigada()));
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectDate()));
.......
}

void RemBrigadaOpen::Brigada()
{
    brigada = 1;
}

void RemBrigadaOpen::selectBrigada(int row)   
{
    if(brigada == 1)
    {
    QModelIndex index = model->relationModel(2)->index(row, 1);
    model->setFilter("Name_Brigada = '" + index.data().toString() + '\'') ;
    model->select();
}

Нет никакой реакции. Подскажите, пожалуйста, как правильно сделать.


Название: Re: Выборка из БД по клику на кнопке
Отправлено: LisandreL от Декабрь 25, 2011, 23:41
А где вы selectBrigada вызываете?


Название: Re: Выборка из БД по клику на кнопке
Отправлено: alina от Декабрь 26, 2011, 19:56
Извините, ошиблась.

Вместо
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectDate()));

строчка
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectBrigada()));


Название: Re: Выборка из БД по клику на кнопке
Отправлено: kambala от Декабрь 26, 2011, 20:07
так неправильно (у метода ж есть параметр, а в коннекте он не указан). может все-таки connect(ui->cbBrigada, SIGNAL(currentIndexChanged(int)), this, SLOT(selectBrigada(int))) ?


Название: Re: Выборка из БД по клику на кнопке
Отправлено: alina от Декабрь 27, 2011, 19:37
так неправильно (у метода ж есть параметр, а в коннекте он не указан). может все-таки connect(ui->cbBrigada, SIGNAL(currentIndexChanged(int)), this, SLOT(selectBrigada(int))) ?

Изначально все так у меня и работало: по изменению значения в виджете вызывался слот selectBrigada(int).
А нужно сделать, чтобы выборка происходила не сразу после изменения значения в виджете, а по клику мыши.


Название: Re: Выборка из БД по клику на кнопке
Отправлено: kambala от Декабрь 27, 2011, 20:16
тогда это правильно:
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectBrigada()));
а у метода selectBrigada(int row) надо просто убрать параметр