#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. Не могли бы вы привести минимальный пример, где мы можем его скомпилировать?