Russian Qt Forum
Ноябрь 23, 2024, 19:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Вопрос к гуру: сигналы и слоты в Qt
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос к гуру: сигналы и слоты в Qt (Прочитано 4771 раз)
pasta
Гость
Вопрос к гуру: сигналы и слоты в Qt
«
:
Октябрь 03, 2005, 01:08 »
Вопрос, собственно, простой :wink:
Как это всё работает?
Задача сделать динамический коннект сигнал-слот. То есть, прога должна обрабатывать xml-файл и по командам оттуда создавать объекты нескольких видов и коннектить их между собой.
Иначе говоря, сделать интерпретатор, который бы позволял динамически строить GUI.
Вроде бы, именно для этого сделан класс QMetaObject.
Но если активировать указанный слот там можно, то как быть с сигналами? Можно, конечно, вести какие-нибудь таблицы сигналов и слотов, все сигналы в создаваемых объектах сразу коннектить к с специально написанным слотам в моем интерпретаторе, а эти слоты по инфе из таблиц будут их ретранслировать по нужным местам.
Но можно ли это сделать не так коряво? Кто-то уже сталкивался с подобной задачей?
Заранее спасибо за любой совет!
Записан
Kostya
Гость
Вопрос к гуру: сигналы и слоты в Qt
«
Ответ #1 :
Октябрь 03, 2005, 07:03 »
Решение - проще не придумаешь. Соединение сигналов-слотов происходит с помощью QObject::connect. Для указания сигналов-слотов используются макросы SIGNAL(), SLOT() - в результате работы этих макросов получаются СТРОКИ такого вида:
SIGNAL(clicked())="2clicked()"
SLOT(click())="1click()"
то есть добавляется просто циферка нужная, то есть можешь коннектить свои слоты-сигналы с помощью QObject::connect используя вместо макросов свои строки.
Записан
pasta
Гость
Вопрос к гуру: сигналы и слоты в Qt
«
Ответ #2 :
Октябрь 03, 2005, 16:42 »
Большое спасибо!
Буду пробовать.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...