Russian Qt Forum

Qt => Общие вопросы => Тема начата: pasta от Октябрь 03, 2005, 01:08



Название: Вопрос к гуру: сигналы и слоты в Qt
Отправлено: pasta от Октябрь 03, 2005, 01:08
Вопрос, собственно, простой  :wink:
Как это всё работает?
Задача сделать динамический коннект сигнал-слот. То есть, прога должна обрабатывать xml-файл и по командам оттуда создавать объекты нескольких видов и коннектить их между собой.
Иначе говоря, сделать интерпретатор, который бы позволял динамически строить GUI.
Вроде бы, именно для этого сделан класс QMetaObject.
Но если активировать указанный слот там можно, то как быть с сигналами? Можно, конечно, вести какие-нибудь таблицы сигналов и слотов, все сигналы в создаваемых объектах сразу коннектить к с специально написанным слотам в моем интерпретаторе, а эти слоты по инфе из таблиц будут их ретранслировать по нужным местам.
Но можно ли это сделать не так коряво? Кто-то уже сталкивался с подобной задачей?
Заранее спасибо за любой совет!


Название: Вопрос к гуру: сигналы и слоты в Qt
Отправлено: Kostya от Октябрь 03, 2005, 07:03
Решение - проще не придумаешь. Соединение сигналов-слотов происходит с помощью QObject::connect. Для указания сигналов-слотов используются макросы SIGNAL(), SLOT() - в результате работы этих макросов получаются СТРОКИ такого вида:
SIGNAL(clicked())="2clicked()"
SLOT(click())="1click()"
то есть добавляется просто циферка нужная, то есть можешь коннектить свои слоты-сигналы с помощью QObject::connect используя вместо макросов свои строки.


Название: Вопрос к гуру: сигналы и слоты в Qt
Отправлено: pasta от Октябрь 03, 2005, 16:42
Большое спасибо!
Буду пробовать.