GTK3 — связывание активного свойства между элементом RadioMenuItem и сбоем радиобуттона

#gtk #glib #gtk# #gobject

Вопрос:

У меня есть всплывающее меню с 2 элементами радиосвязи в каскадном подменю. В диалоге у меня есть похожий радиоприемник с 2 кнопками радиосвязи. Кнопки называются одинаково во всплывающем окне и в диалоговом окне. Давайте назовем их «ABC» и «XYZ». Я использую следующий код, чтобы попытаться визуально синхронизировать кнопки:

 GtkRadioMenuItem* rmi1;
GtkRadioMenuItem* rmi2;
GtkRadioButton*   rb1;
GtkRadioButton*   rb2;
.... // widget creation code;
g_object_bind_property(rmi1, "active", rb1, "active", G_BINDING_BIDIRECTIONAL);
g_object_bind_property(rmi2, "active", rb2, "active", G_BINDING_BIDIRECTIONAL);
 

Когда я нажимаю кнопку в диалоговом окне, соответствующий элемент всплывающего меню изменяется правильно. Однако, когда я выбираю элемент RadioMenuItem во всплывающем окне, соответствующая кнопка RadioButton в диалоговом окне НЕ обновляется. Диалоговое окно отображается, когда все это происходит. Всплывающее окно отображается только при нажатии правой кнопки мыши.

Есть какие-нибудь идеи, что может помешать правильной работе привязки?

Я использую Gtk 3.22 в Linux RH7.5, пишу на C .

Заранее благодарю вас за любую помощь.

Комментарии:

1. Не могли бы вы привести минимальный пример, где мы можем его скомпилировать?