crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как идентифицировать сигнал, идентифицировать сигнал
fantom
  опции профиля:
сообщение 29.1.2009, 16:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 29.1.2009
Пользователь №: 515

Спасибо сказали: 1 раз(а)




Репутация:   1  


Здравствуйте. Есть проблема, которую пока никак не могу решить. Соединяю сигнал со слотом, высылаю сигнал - вызывается слот. Как узнать имя сигнала вызвавшего данный слот. Единственное что пока пришло в голову как то использовать класс QSignalSpy. Но как пока не знаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
fantom
  опции профиля:
сообщение 30.1.2009, 11:28
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 29.1.2009
Пользователь №: 515

Спасибо сказали: 1 раз(а)




Репутация:   1  


Конечная цель не дебажная следилка. Есть заказ на крупное клиент-серверное приложение в котором тысячи всевозможных элементов на формах в том числе нестандартных. На самом деле пытаемся разработать набор библиотек для создания клиент серверной технологии основанной на концепции MVC. Одно из условий наличие тонкового клиента. Так вот хочется максимально упростить написание клиентской части и так как там не предусматривается никакой логики разработку основной части клиента хочется перенести в qt designer. Суть в том что все необходимые для нас виджеты будут переопределены и будут привязаны своими свойствами к свойствам объектов описание которых находится во внешнем xml файле. Эти объекты динамически подгружаются сервером и во време работы происходит автоматическая синхронизация сервера с клиентом, что позволяет избавится от кучи лишней работы связанной с написанием клиента и предоставить ее дизайнеру. Так вот отправка запросов от клиента будет идти по сигналу от любого виджета на форме. Связка сигналов и необходимых групп свойств для запроса на изменении делается в дизайнере. Все эти сигналы планируется связать с одним слотом который будет выполнять парсинг созданных в дизайнере правок и отправки необходимых запросов серверу. Проблема в том чтобы определить от какого объекта и какой сигнал вызвал этот слот.. Причем проблему хоть как то извращенно но надо решить. Может у кого какие идеи есть?

Кстати если реализация будет успешной реализацию данной технологии выложим под GPL.

Ладно щас буду копать в сторону QSignalSpy.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 30.1.2009, 11:41
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


единственное что приходит в гоолову это так как вы собираетесь переопределять виджеты
Цитата
..
необходимые для нас виджеты будут переопределены
...

переопределить и стандартные сигналы
...
connect(this,SIGNAL(clicked()),this,SLOT(sendClicked()));// перенаправление стандартного сигнала
...
void sendClicked() {
emit sgClicked(параметр);//этот сигнал соединить со слотом обработчиком и оп параметру определять что за /////сигнал вызвал слот.
}
...


как я понял необходимо определить не только сигнл но объект который его послал. т.к. если будет несколько объектов одного типа стандартные сигналы у них называются одинаково то параметр в сигнале спасает + если он целого типа то значительно упрощает обработку в слоте приемнике.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- fantom   как идентифицировать сигнал   29.1.2009, 16:39
- - kwisp   Цитата(fantom @ 29.1.2009, 16:39) Здравст...   29.1.2009, 16:45
- - fantom   Такой вариант меня не очень устраивает так как мне...   29.1.2009, 16:57
- - ViGOur   Посмотри в сторону: void QMetaObject::connectSlots...   29.1.2009, 17:23
- - fantom   Посмотрел на описание connectSlotsByName ( QObject...   29.1.2009, 18:05
- - Litkevich Yuriy   Цитата(fantom @ 29.1.2009, 19:39) Как узн...   29.1.2009, 20:14
- - ViGOur   Цитата(Litkevich Yuriy @ 29.1.2009, 20:14...   29.1.2009, 20:45
- - Litkevich Yuriy   Цитата(ViGOur @ 29.1.2009, 23:45) дебажна...   29.1.2009, 20:48
- - ViGOur   Объект пославший сигнал можно получить QObject::se...   29.1.2009, 21:05
- - fantom   Конечная цель не дебажная следилка. Есть заказ на ...   30.1.2009, 11:28
|- - kwisp   единственное что приходит в гоолову это так как вы...   30.1.2009, 11:41
- - Litkevich Yuriy   fantom, Если я правильно понял конечную цель, то п...   30.1.2009, 13:47
- - ViGOur   По всей видимости стандартных путей нет. Если хак...   30.1.2009, 15:17
- - fantom   ViGOur вы исходники какой версии qt смотрели? У ...   30.1.2009, 16:06
- - ViGOur   Блин, забыл что у вас 4.3.2, я смотрел 4.4.0. Сейч...   30.1.2009, 16:08
- - fantom   да. в 4.4 должно как то так работать int signalI...   30.1.2009, 16:17
- - ViGOur   В вашей версии есть такой аргумент как QObjectPriv...   30.1.2009, 16:17
- - fantom   Кстати а как получить имя сигнала по индексу? Врод...   30.1.2009, 16:42
- - fantom   Ну судя по metaObject()->indexOfSignal обращени...   30.1.2009, 17:24
- - ViGOur   Цитата(fantom @ 30.1.2009, 16:42) Или как...   30.1.2009, 17:24
- - fantom   Точно! Спасибо все работает. for( int i =...   30.1.2009, 17:45
- - ViGOur   Цитата(fantom @ 30.1.2009, 17:45) В итоге...   31.1.2009, 11:30
- - Litkevich Yuriy   Обсуждение связанное с Vedga перенес в существующу...   31.1.2009, 11:54
- - SABROG   Цитата(fantom @ 29.1.2009, 16:57) так как...   31.1.2009, 13:23
- - fantom   Цитата(SABROG @ 31.1.2009, 13:23) Этот ко...   2.2.2009, 17:34
|- - SABROG   fantom Цитата(fantom @ 2.2.2009, 17:34) Ц...   2.2.2009, 18:45
- - fantom   Ну чтобы не вылезло можешь в каждом своем наследни...   2.2.2009, 19:18
|- - SABROG   fantom Цитата(fantom @ 2.2.2009, 19:18) Н...   2.2.2009, 20:39
- - fantom   SABROG ты сам запутался и меня запутал. короче ник...   3.2.2009, 17:01
- - SABROG   ну теперь, по идее, должно все работать.   3.2.2009, 18:02
- - Tonal   Что-то помоему как-то всё через чур сложно. Может ...   4.2.2009, 9:04
- - SABROG   QObject - не обязательно виджет. QTimer например.   4.2.2009, 9:18
|- - Tonal   Цитата(SABROG @ 4.2.2009, 12:18) QObject ...   4.2.2009, 9:49
- - SABROG   Мое дело предупредить, а уж кто как захочет ваше д...   4.2.2009, 11:39


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 19:23