diff -r 4a1c2eae4bcd -r 81e46644f1aa ui/qt/menu.cpp
--- a/ui/qt/menu.cpp	Sun Mar 30 12:51:28 2025 +0200
+++ b/ui/qt/menu.cpp	Sun Mar 30 14:19:55 2025 +0200
@@ -124,14 +124,71 @@
         
         action->setChecked((bool)value->value);
     }
+    action->var = var;
 }
 
 void add_radioitem_widget(QMenu *parent, int index, UiMenuItemI *item, UiObject *obj) {
+    UiMenuRadioItem *it = (UiMenuRadioItem*)item;
     
+    UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups);
+    parent->addAction(action);
+    action->setCheckable(true);
+    action->prepare_event = ui_actiongroup_prepare_event;
+    
+    UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, it->varname, UI_VAR_INTEGER);
+    if(var) {
+        UiInteger *value = (UiInteger*)var->value;
+        QActionGroup *group = (QActionGroup*)value->obj;
+        if(!group) {
+            group = new QActionGroup(parent);
+            value->obj = group;
+        }
+        group->addAction(action);
+        value->get = ui_actiongroup_get;
+        value->set = ui_actiongroup_set;
+        if(value->value != 0) {
+            ui_actiongroup_set(value, value->value);
+        }
+    }
+    action->var;
 }
 
-void add_checkitemnv_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) {
-    
+void ui_actiongroup_prepare_event(UiEvent *event, UiAction *action) {
+    if(action->var) {
+        UiInteger *value = (UiInteger*)action->var->value;
+        event->eventdata = value;
+        event->intval = value->get(value);
+    }
+}
+
+int64_t ui_actiongroup_get(UiInteger *value) {
+    QActionGroup *group = (QActionGroup*)value->obj;
+    auto actions = group->actions();
+    int i = 1;
+    foreach(const QAction *action, actions) {
+        if(action->isChecked()) {
+            value->value = i;
+            break;
+        }
+        i++;
+    }
+    return value->value;
+}
+
+void ui_actiongroup_set(UiInteger *value, int64_t i) {
+    QActionGroup *group = (QActionGroup*)value->obj;
+    auto actions = group->actions();
+    if(i > 0) {
+        if(i-1 < actions.size()) {
+            actions[i]->setEnabled(true);
+        }
+        value->value = i;
+    } else {
+        foreach(QAction *action, actions) {
+            action->setEnabled(false);
+        }
+        value->value = 0;
+    }
 }
 
 void add_menuitem_list_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) {