我在 QButtonGroup 容器内有一个带有两个单选按钮的 GUI,该容器本身位于 QGroupBox 内(此按钮组需要右键单击上下文菜单,并且由于 QButtonGroup 没有视觉表示,因此它似乎没有 setContextMenuPolicy方法。)下面的代码片段应该更新互斥按钮的状态,以响应来自串行链路的传入数据:
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)
不幸的是,这不起作用,我知道最初这里选择的按钮被选中,但是 GUI 中按钮的状态永远不会改变,即使代码似乎正在正确执行,断言也总是失败。关于为什么这可能会出错的任何想法?