Как g_main_loop работает в программировании gtk?
-
19-09-2019 - |
Вопрос
Я новичок в программировании GTK+.Я наткнулся на API под названием g_main_loop()
.Я использовал его в своем коде, но до сих пор не знаю, как именно это работает.Может кто-нибудь объяснить g_main_loop()
с небольшим фрагментом кода?
Решение
Я рекомендую чтение документации, начиная с связанной функции g_main_loop_new()
.
По сути, предоставление glib «владения» основным циклом вашего приложения упрощает поддержку таких вещей, как «подключаемые» источники событий;где ваше приложение прослушивает как (например) события, поступающие от виджетов GTK+, так и сетевой сокет или канал Unix.Это вещи, которые необходимо соединить вместе на довольно низком уровне в основном цикле приложения, и если glib владеет этими частями, это упрощает задачу.
Существуют гибкие структуры данных (например, каналы ввода-вывода), которые совместимы с основным циклом и позволяют добавлять элементы к набору входных данных, которыми управляет цикл.Для GTK+ соединения выполняются автоматически, а основной цикл GTK+ (gtk_main()
) обертывает glib.