Как сделать поведение action checkable пунктов меню окна подобным radiobutton?
Может быть формулировка вопроса не очень очевидная (собственно, поэтому я это и не смог нагуглить), но постараюсь изложить это своими словами. У меня есть такой кусок кода:
def create_menu_bar(self):
menu_bar = self.menuBar()
file_menu = QMenu("&File", self)
settings_menu = QMenu("&Settings", self)
# подменю настроек
profiles_menu = QMenu("&Profiles", self)
profiles_menu.setIcon(QIcon('img/profiles.png'))
# основные пункты меню
menu_bar.addMenu(file_menu)
menu_bar.addMenu(settings_menu)
# подпункты в file_menu
export_configs = self.create_export_configs_action()
exit_action = self.create_exit_action()
file_menu.addAction(export_configs)
file_menu.addAction(exit_action)
# TODO: тестовые профили
action_profile_1 = QAction('Profile 1', self)
action_profile_2 = QAction('Profile 2', self)
settings_menu.addAction(profiles_menu.menuAction())
profiles_menu.addAction(action_profile_1)
profiles_menu.addAction(action_profile_2)
action_profile_1.setCheckable(True)
action_profile_2.setCheckable(True)
Я хочу сделать выбор профилей с определенными настройками программы (иными словами пресеты). И было бы очень кстати воткнуть их в главное меню окна, то есть верхнюю панель с пунктами Файл, Редактировать, и тд. В пункте "settings" у меня есть подпункт Profiles
, и по моей задумке при его открытии выпадает список профилей, которые я реализовал через QAction
. Я нашел один интересный метод: "setCheckable"
, который позволяет мне выбирать их и рядом появляется галочка. Единственная проблема, что это работает как checkbox
, и можно выбирать сразу несколько пунктов, а мне бы хотелось, чтобы это работало как radiobutton
. Т.е. чтобы можно было выбрать лишь один из этих пунктов. Можно ли реализовать это таким образом?
PS: ручками конечно можно логику такую прописать, но я предполагаю, что это будет изобретением велосипеда