GTK использует объектно-ориентированный C, где объектно-ориентированная часть визуализируется с помощью указателей на функции. так что если вы можете кэшировать этот указатель с помощью кода на стороне C виджета gtk, тогда здесь больше информации ...
если у вас не хватает времени, тогда рассмотрите в этом примере ... Найдите gtk_cpu_destroy в этом примере, следующий код устанавливает указатель функции в виджете.
object_class->destroy = gtk_cpu_destroy;
кроме gtkmm, существует также проект gfc , который, я думаю, чище и проще для понимания ...
Какие еще последствия я должен знать при реализации виджета GTK + в C ++?
мой запрос, если ваш пользовательский виджет действительно является виджетом gtk или gdk ... не все события gdk обрабатываются в gtkmm (или, по крайней мере, они не были в 2009 году), поэтому имейте в виду, что ваше приложение может аварийно завершать работу , если ваш виджет широко использует gdk, и события gdk не перехватываются. Такие инструменты, как systemtap, могут помочь вам отследить события, вызывающие проблему.