У меня есть GUI с двумя переключателями внутри контейнера QButtonGroup, который сам находится внутри QGroupBox (эта группа кнопок нуждается в контекстном меню правой кнопки мыши, а поскольку QButtonGroup не иметь визуальное представление не кажется, есть метод setContextMenuPolicy) следующий фрагмент кода должен обновить состояние взаимоисключающих кнопок в ответ на входящие данные из последовательного канала:.PyQT - метод button.toggle() не работает
elif widgetName in self.buttonBoxDict:
buttonGroup = getattr(self.ui, self.buttonBoxDict[widgetName])
checkedButton = buttonGroup.checkedButton()
checkedButtonName = str(checkedButton.objectName())
if value >= self.onValue and self.buttonDict[checkedButtonName][1] == self.offValue:
checkedButton.toggle()
assert(not checkedButton.isChecked())
self.windowHandler.buttonChanged(self, self.onValue, cc)
elif value < self.onValue and self.buttonDict[checkedButtonName][1] == self.onValue:
checkedButton.toggle()
self.windowHandler.buttonChanged(self, self.offValue, cc)
к сожалению это не работает, я знаю, что первоначально выбранная здесь кнопка отмечена, но состояние кнопки в графическом интерфейсе никогда не изменяется, и утверждение всегда выходит из строя, даже несмотря на то, что код, похоже, выполняется правильно. Любые идеи относительно того, почему это может пойти не так?
Это трудно понять без контекста. Можете ли вы предоставить runnable пример проблемы? – Avaris
@Avaris Спасибо за ответ - я посмотрю, смогу ли я поставить что-то более прямое, что иллюстрирует проблему. – Bitrex