Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вызов окна в зависимости от выбранного значения в combobox
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
lexflax
Доброго времени суток.
Подскажите как по двойному клику вызывать 5 разных окон, в зависимости от того какие данные сейчас загружены в tableview.
Если загружены данные о возвратах то будет вызвано окно для редактирования возвратов, если загружены расходные накладные то будет вызвано окно для редактирования расходных накладных.
Сейчас естественно при любой загрузке вызывается одно и тоже окно...
Данные загружаются после выбора в combobox
void MainWindow::echoChanged(int index)
{
    QSqlQueryModel *rashodnie = new QSqlQueryModel;
    QSqlQuery query;
switch (index){
case 0:
    query.exec("SELECT * FROM rashodnie_nacladnie");
    break;
case 1:
    query.exec("SELECT * FROM vozvrati");
break;
case 2:
    query.exec("SELECT * FROM d_postuplenia");
    break;
case 3:
    query.exec("SELECT * FROM prihodi");
break;
case 4:
    query.exec("SELECT * FROM spisania");
break;

    default:
            return;  }
rashodnie->setQuery(query);
ui->tableView->setModel(rashodnie);
}


Можно как то связь эту установить чтоб учитывалось из какой таблицы сейчас выгружены данные, и тогда после двойного клика вызывалось нужное окно.
К примеру сейчас 2 окна вызывается, расходные накладные и возвраты а должно только одно в зависимости от того какие данные сейчас выбраны в комбобоксе

void MainWindow::insertRecord(){
      Prosmotrrashodnakladnih *prosmotrnakladnih = new Prosmotrrashodnakladnih;
      prosmotrnakladnih->show();

      ProsmotrVozvratov *prosmotrvozvratov = new ProsmotrVozvratov;
      prosmotrvozvratov->show();
}
ViGOur
Делаешь один базовый класс для твоих документов, от которого будут унаследованы твои Prosmotrrashodnakladnih, ProsmotrVozvratov и другие.
Добавляешь объект базового класса в твой класс MainWindow и делашь что-то вроде:
switch (index)
{
case 0:
     m_pBaseDoc = new Prosmotrrashodnakladnih;
    break;
case 1:
     m_pBaseDoc = new ProsmotrVozvratov;
break;
    default: return;  
}
Или реализуй полноценную фабрику классов...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.