Вы можете сделать так, чтобы ваш Glib :: MainLoop получил события, а затем отправил их в Gtk :: Main.
Я считаю, что единственный способ соединиться с пользовательскими аргументами - это использовать sigc :: bind.
Например, допустим, вы хотите передать целое число, а также указатель на рассматриваемый виджет:
pWidget->signal_foo().connect(
sigc::bind<int, Gtk::SomeWidget*>(
sigc::mem_fun( *this, &Bar::OnFooBar ), i, pWidget ) );