Russian Qt Forum
Ноябрь 27, 2024, 20:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Выборка из БД по клику на кнопке  (Прочитано 3852 раз)
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();
}

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

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Декабрь 25, 2011, 23:41 »

А где вы selectBrigada вызываете?
Записан
alina
Гость
« Ответ #2 : Декабрь 26, 2011, 19:56 »

Извините, ошиблась.

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

строчка
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectBrigada()));
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Декабрь 26, 2011, 20:07 »

так неправильно (у метода ж есть параметр, а в коннекте он не указан). может все-таки connect(ui->cbBrigada, SIGNAL(currentIndexChanged(int)), this, SLOT(selectBrigada(int))) ?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
alina
Гость
« Ответ #4 : Декабрь 27, 2011, 19:37 »

так неправильно (у метода ж есть параметр, а в коннекте он не указан). может все-таки connect(ui->cbBrigada, SIGNAL(currentIndexChanged(int)), this, SLOT(selectBrigada(int))) ?

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Декабрь 27, 2011, 20:16 »

тогда это правильно:
connect(ui->pbSelect, SIGNAL(clicked()), this, SLOT(selectBrigada()));
а у метода selectBrigada(int row) надо просто убрать параметр
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.