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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: doubleClick, QSignalMapper и как их срастить  (Прочитано 2392 раз)
crocus
Гость
« : Август 23, 2007, 09:12 »

Уж мозг сломал Непонимающий
есть TableView, есть TabWidget c 3 вкладками( жилая, комерч, земля) в зависимости на какой вкладке нажимаем кнопку "поиск "- заполняется TableView, хочется при двойном клике по TableView показывать подробную информацию конкретно (либо "подробно о жилая", либо "подробно о комерч", либо "подробно о земле") реализовал так:
Код:
connect( flatseach, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );
   
.......................................................

connect( commercialseach, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );

......................................................

connect( seachgroundareas, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );
........................................

void MainWindow::openDetail()
{
detailToolBar->clear();
    detailToolBar->addAction( tmp_dock_action );
connect( tableView, SIGNAL( doubleClicked ( const QModelIndex & ) ), tmp_dock_action, SLOT ( toggle())); 
connect( tmp_dock_action, SIGNAL( toggled ( bool ) ), tmp_dock, SLOT( setVisible( bool )));
}
........................................

//где-то в коде
tmp_dock_action = qobject_cast<QAction*>(a_dock_d);
tmp_dock = qobject_cast<QDockWidget*>(dock_d);

// и
tmp_dock_action = qobject_cast<QAction*>(a_dock_comm);
tmp_dock = qobject_cast<QDockWidget*>(dock_comm);
// и еще
tmp_dock_action = qobject_cast<QAction*>(a_dock_gr);
tmp_dock = qobject_cast<QDockWidget*>(dock_gr);
Но при клике по "жилой" открывается правильно, а вот если затем кликаем по "коммерч" открывается оба и "жилая" и "коммерч".
Т.е. "tmp_dock = qobject_cast<QDockWidget*>(dock_d);" как-то неотрабатывает, сохраняя и предыдущее значение tmp_dock
Полагаю надо как-то замаппить клик на TableView, но как не врубаюсь
Короче вот скрин:
« Последнее редактирование: Август 23, 2007, 09:18 от crocus » Записан
EhTemka
Гость
« Ответ #1 : Август 23, 2007, 16:55 »

 сделай дополнительный слот, который коннектится с doubleClickеd. И в нем проверяй что за индекс и к чему относится, а уж в зависимости от этого показывай то или иное. Я вообже из кода не понимаю как у тебя это работает...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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