Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
 Аватар для Иванов_Андрей
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52

Отладка сигнал-слот

02.08.2014, 19:04. Показов 3647. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уф. У меня еще вопросик: как мне пройтись отладчиком через connect(), и понять что происходит при обработке сигнала слотом?
т.е. я дохожу отладчиком до connect'a, он срабатывает, а дальше непонятно. Может у кого есть опыт?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2014, 19:04
Ответы с готовыми решениями:

Сигнал и слот
Подскажите пожалуйста функция connect это единственная функцию взаимодействия с пользователем? Как в delphi события? Тогда такой вопрос...

Сигнал и слот
Всем привет, нужна помощь. Подскажите пожалуйста, как реализовать некий процесс: у меня есть на форме 2 кнопки (Старт, Стоп) и spinbox,...

Сигнал-слот
Есть кусок кода QFile file("3.txt"); QVector< QVector<double> > numbers; if (file.open(QIODevice::ReadOnly...

12
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.08.2014, 20:03
Я могу ошибаться, но думаю никак, легче пораставлять qDebug()
1
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
02.08.2014, 20:35
Ну и каша...

Цитата Сообщение от Иванов_Андрей Посмотреть сообщение
как мне пройтись отладчиком через connect()
Никак. Метод connect сам по себе ничего не делает. Он лишь связывает сигнал слоты, а выполнятся эта связь может когда угодно.

Цитата Сообщение от Иванов_Андрей Посмотреть сообщение
при обработке сигнала слотом
Слот сигнал не обрабатывает. Цикл событий просто вызывает нужный слот после сигнала.
1
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
02.08.2014, 20:39
при самостоятельной сборки Qt из сорцов такое дело очень даже возможно, но( под винду , за другое не скажу) можно еще попробовать в настройках проекта или среды разраб. прописать пути к сорцам и символам.
1
 Аватар для Иванов_Андрей
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52
02.08.2014, 20:40  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Ну и каша...
не спорю, я только учусь
мне просто нужно понять/посмотреть как меняются переменные при обработке сигнала, поэтому и спросил.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
02.08.2014, 20:49
Цитата Сообщение от Иванов_Андрей Посмотреть сообщение
как меняются переменные при обработке сигнала
какие переменные и при обработке кем?
1
 Аватар для Иванов_Андрей
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52
02.08.2014, 20:55  [ТС]
RazrFalcon, может я, конечно, ничего не понимаю, но сигнал принимается слотом, так? Тогда слот выполняет некие манипуляции с объектом принимающим данный сигнал и, соответственно, меняет значения полей этого объекта, так? Так вот, я хочу посмотреть чего он там делает и как.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.08.2014, 21:37
Лучший ответ Сообщение было отмечено Иванов_Андрей как решение

Решение

Ну так брейк поинт поставь и смотри в чем проблема?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
02.08.2014, 22:54
Цитата Сообщение от Иванов_Андрей Посмотреть сообщение
но сигнал принимается слотом, так?
Нет. Сигнал добавляет событие в глобальный цикл событий, а затем уже цикл вызывает слот когда придёт его очередь.

Слот ничего с сигналом не делает и делать не может. В инете куча статей которые разжевывают сигналы-слоты в Qt. Даже на хабре было.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.08.2014, 22:57
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Нет. Сигнал добавляет событие в глобальный цикл событий, а затем уже цикл вызывает слот когда придёт его очередь.
Это только один из вариантов развития событий, так обычно возникает при общении между потоками.
В обычной ситуации это связь "указатель на функцию" -> "функция".

Все зависит от опции связывания которая передается в connect()
1
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
02.08.2014, 23:02
Avazart, да, но это уже тонкости. Тот же сигнал может вызвать слот сразу же, если у нас DirectConnection. В этом случае вообще все идет в обход цикла событий.

В общем ТС, отловить то что вы хотите через дебагер проблематично. Если хотите понять как там все устроено, откройте папку в которой собирается программа, и пооткрывайте файлы вида moc_*.cpp и многое станет на свои места.
1
 Аватар для Иванов_Андрей
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52
03.08.2014, 18:19  [ТС]
Avazart, RazrFalcon, я смог пройти отладчиком по слоту во время обработки сигнала, вся беда в том была, что у меня коннекта не было. А потом - да пожалуйста.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.08.2014, 18:48
Ну при Qt::DirectConnection может быть, а вот при Qt::QueuedConnection должны быть проблемы в отслеживании по идее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.08.2014, 18:48
Помогаю со студенческими работами здесь

Связать сигнал и слот
class Parent:public QObject { signals: void signal(); } class A : public Parent { };

Многопоточность и сигнал/слот
Начал разбираться с QThread который отсылает меня "назад" к понятию о связывании сигналов и слотов. Из книги Шлее: Вопрос как...

Слот не перехватывает сигнал
Есть класс унаследованный от QGroupBox: class Block : public QGroupBox { Q_OBJECT public: Block(QWidget *parrent); ...

Несовместимые сигнал и слот
Есть класс: class Elevator : public QObject, public QGraphicsRectItem { Q_OBJECT int floor; public: Elevator(); ...

Сигнал-слот в моих классах
Здравствуйте, как использовать сигналы в моих классах ? Вот класса кондиционер, хотел сделать вызов функции condition каждую секунду....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru