How to assign a value to a radiobutton in pyqt?
Question: I want to assign a value to a radiobutton when it is checked.

    
    
    def radiobutton8(self):
        if self.radioButton_8.isChecked():
            self.radioButton_8 = 02
    

However, this cannot work. Any solution?

UPDATE: My code has been edited to be:

    
    
    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)
    

However, my original text 'A1' for the radio button is now missing and my
number still does not appear on my lcd when checked. Any idea why?

UPDATE: I edited my code to be something like that:

    
    
    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)
    

And then now I have this error:

    
    
    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'
    

I have also tried the code you have given me and there is no such error, but
the LCD in your code does not show the value 02.


Answer: Do you mean text value next to radioButton? if so, here is solution:

    
    
    def radiobutton8(self):
        if self.radioButton_8.isChecked():
            self.radioButton_8.setText("02")
    

**EDIT1** : radioButton doesn't have value field as you need. However, you can
write your own radiobButton class that inherits original QRadioButton, and add
that field. Example:

    
    
    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
    

and use it like this:

    
    
    self.radioButton_8 = MyRadioButton()
    self.radioButton_8.setText("some text")
    ...
    def radiobutton8(self):
        if self.radioButton_8.isChecked():
            self.radioButton_8.SetValue("02")# or .SetValue(2) if you want it to be integer
    

**EDIT2**

    
    
    # -*- coding: utf-8 -*-
    import sys
    from PyQt4 import QtCore, QtGui
    from PyQt4.QtCore import Qt
    
    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 Widget(QtGui.QWidget):
        def __init__(self):
            super(Widget, self).__init__()
            self.layout = QtGui.QVBoxLayout(self)
    
            self.pushButton_7 = QtGui.QPushButton("if RB is checked, show it's value to LCD")
            self.pushButton_7.setGeometry(QtCore.QRect(220, 650, 75, 23))
            self.pushButton_7.clicked.connect(self.showValueFromRadioButtonToLCDNumber)
    
            self.radioButton = MyRadioButton()
            self.radioButton.setText("some text")
            self.radioButton.SetValue("02")# somewhere in code first set value to radio button
    
            self.lcdNumber = QtGui.QLCDNumber()
    
            self.layout.addWidget(self.pushButton_7)
            self.layout.addWidget(self.radioButton)
            self.layout.addWidget(self.lcdNumber)
    
        def showValueFromRadioButtonToLCDNumber(self):
            value = self.radioButton.GetValue()
            if self.radioButton.isChecked():
                self.lcdNumber.display(value)
    
    if __name__ == '__main__':
        app = QtGui.QApplication([])
        w = Widget()
        w.show()
        sys.exit(app.exec_())
    

