QWidgetAction - это то, что вы ищете.Это то, что есть в qt docs
Класс QWidgetAction расширяет QAction с помощью интерфейса для вставки пользовательских виджетов в контейнеры, основанные на действии
Таким образом, в основном это дает пользовательский интерфейс для QActionв соответствии с тем, что QWidget вы переходите к нему.Я использовал QWidgetAction для отображения флажка в качестве элементов QMenu.
QCheckBox *chkBox = new QCheckBox(menu);
chkBox ->setText("MyCheckBox");
QWidgetAction *chkBoxAction= new QWidgetAction(menu);
chkBoxAction->setDefaultWidget(chkBox);
menu->addAction(chkBoxAction);
Затем вы можете обрабатывать сигналы из флажка соответственно.