我想在选中单选按钮时为其分配一个值。
def radiobutton8(self):
if self.radioButton_8.isChecked():
self.radioButton_8 = 02
但是,这行不通。有什么解决办法吗?
更新:我的代码已被编辑为:
class MyRadioButton(QtGui.QRadioButton):
def __init__(self):
super(MyRadioButton, self).__init__()
self.value = None
def SetValue(self, val):
self.value = val
def GetValue(self):
return self.value
class UserTool(QtGui.QDialog):
def setup(self, Dialog):
...
self.radioButton_8.toggled.connect(self.radiobutton8)
def retranslateUi(self, Dialog):
...
self.radioButton_8 = MyRadioButton()
self.radioButton_8.setText(_translate("Dialog", "A1", None))
def radiobutton8(self):
if self.radioButton_8.isChecked():
value = self.radioButton_8.setValue("02")
self.lcdNumber.display(value)
但是,我现在缺少单选按钮的原始文本“A1”,并且在检查时我的号码仍然没有出现在我的液晶显示器上。知道为什么吗?
更新:我编辑我的代码是这样的:
class MyRadioButton(QtGui.QRadioButton):
def __init__(self):
super(MyRadioButton, self).__init__()
self.value = None
def SetValue(self, val):
self.value = val
def GetValue(self):
return self.value
class UserTool(QtGui.QDialog):
def setup(self, Dialog):
...
self.lcdNumber = QtGui.QLCDNumber(Dialog)
self.lcdNumber.setGeometry(QtCore.QRect(590, 10, 71, 23))
self.lcdNumber.setFrameShadow(QtGui.QFrame.Raised)
self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
self.lcdNumber.setStyleSheet("* {background-color: black; color: white;}")
self.lcdNumber.display('00')
self.radioButton_8 = QtGui.QRadioButton(Dialog)
self.radioButton_8.setGeometry(QtCore.QRect(460, 10, 82, 17))
self.radioButton_8.setChecked(False)
self.radioButton_8.setAutoExclusive(False)
self.radioButton_8.setObjectName(_fromUtf8("radioButton_8"))
self.radioButton_8 = MyRadioButton()
self.radioButton_8.setText("A1")
self.radioButton_8.setValue(02)
self.radioButton_8.toggled.connect(self.showValueFromRadioButtonToLCDNumber)
def showValueFromRadioButtonToLCDNumber(self):
value = self.radioButton_8.GetValue()
if self.radioButton_8.isChecked():
self.lcdNumber.display(value)
然后现在我有这个错误:
Traceback (most recent call last):
File "C:/Users/Vivien Phua/Documents/Python Scripts/Rs232.py", line 303, in handleOpenWidget
self.popup = UserTool()
File "C:/Users/Vivien Phua/Documents/Python Scripts/Rs232.py", line 39, in __init__
self.setup(self)
File "C:/Users/Vivien Phua/Documents/Python Scripts/Rs232.py", line 153, in setup
self.radioButton_8.setValue(02)
AttributeError: 'MyRadioButton' object has no attribute 'setValue'
我也试过你给我的代码,没有这样的错误,但是你代码中的 LCD 没有显示值 02。