Название: срабатывание сигналов Отправлено: Evgeniya от Февраль 22, 2010, 12:31 Доброго времени суток!!!
Подключаю к tableView два сигнала Код при клике мыши по разным элементам таблицы,срабатывают оба сигнала,что не удивительно ))) Можно ли как-нить сделать так,чтобы сигнал click() срабатывал бы только когда сликаешь по одному и тому же элементу,т.е. когда не срабатывает сигнал selectionChanged(). А в остальных бы случаях срабатывал бы только selectionChanged() Название: Re: срабатывание сигналов Отправлено: Evgeniya от Февраль 22, 2010, 13:17 т.е. я хочу чтобы сигнал clicked() срабатывал, только когда нет перехода на др элемент...а во всех остальных случаях он не срабатывал
Название: Re: срабатывание сигналов Отправлено: Evgeniya от Февраль 22, 2010, 13:41 а можно как-нить определить сработал ли сигнал selectionChanged() и если сработал,то не выполнять сигнал clicked()??
Название: Re: срабатывание сигналов Отправлено: SABROG от Февраль 22, 2010, 16:46 Объясните откуда ноги растут, в чем первопричина проблемы?
Название: Re: срабатывание сигналов Отправлено: crossly от Февраль 22, 2010, 20:16 может проще решать обрабатывать сигнал или нет......
Название: Re: срабатывание сигналов Отправлено: Павел_F. от Февраль 22, 2010, 23:02 Можно лишь догадываться... Но у меня такая проблема возникла когда надо было "заставить" пользователя нужным образом и в нужном порядке заполнить таблицу, с автоматическим переходом к редактированию следующей позиции. Весьма корявый интерфейс в целом, но заказчик желал именно так. В результате я забил на сигналы и все что мне надо делал в edit ( const QModelIndex & index, EditTrigger trigger, QEvent * event ) и closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint ) своего класса унаследованного от QTableView.
Отсюда рискну предположить что либо у вас тоже заказчик "со странностями", либо вы сами загадали не лучший интерфейс. Если второе то советую пересмотреть ваш подход к созданию GUI. Название: Re: срабатывание сигналов Отправлено: Igors от Февраль 23, 2010, 00:23 при клике мыши по разным элементам таблицы,срабатывают оба сигнала,что не удивительно ))) Если я правильно понял, Вы хотите так:Можно ли как-нить сделать так,чтобы сигнал click() срабатывал бы только когда сликаешь по одному и тому же элементу,т.е. когда не срабатывает сигнал selectionChanged(). А в остальных бы случаях срабатывал бы только selectionChanged() - если пользователь кликнул (нажал и отпустил кнопку мыши) на уже выбранной ячейке - тогда Вы что-то делаете - иначе (ячейка не была выбрана) - просто смена фокуса Тогда надо изучать "хронологию" - пусть первым приходит selectionChanged. Тогда заведите переменную (член класса таблицы) напр. так (псевдокод) Код: void selectionChanged( ...) |