Кстати, я сам в этом разбираюсь, так что воспринимайте мой ответ как «взаимное обучение», а не как супер-эксперт по этому вопросу.
Я не очень понимаю, для чего они используются
В основном они используются для подключения двух графических интерфейсов, которые не обязательно принадлежат одному и тому же программному обеспечению. Подумайте о музыкальном микшере: люди, которые его построили, снабдили его несколькими разъемами (гнездами), а затем каждый пользователь может подключить любой инструмент по своему желанию (стандартные гнезда).
В этой метафоре и микшер, и музыкальный инструмент представляют собой разные программы, но у них есть общий способ кодирования сигнала (класс gtk.Widget) для обмена программами.
Опять же, я не эксперт, но я читал, что QT, например, гораздо более широко использует эту концепцию, используя ее также внутри того же приложения.
Кто-нибудь может дать мне реальный пример программы, в которой они будут использованы для иллюстрации того, что они делают?
Не уверен, что здесь, вы можете попробовать поиск по гугл-коду .