Как передать параметры Save_param методу (функции) S1 and 10?

class mywindow(QtWidgets.QMainWindow):
    def __init__(self):                        
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)            
    self.ui.doubleSpinBox_S1.valueChanged.connect(Save_param("S1",'10'))

 def Save_param(str,value):
    with open('config.json','r') as f:
        config=json.load(f)
    config[str]=value
    with open('config.json','w') as f:
        json.dump(config,f)

Error:

File "/home/pi/python/main.py", line 100, in __init__ self.ui.doubleSpinBox_S1.valueChanged.connect(Save_param('S1','10')) TypeError: argument 1 has unexpected type 'NoneType'

Как передать параметры S1 and 10 ?

В итоге хочу сделать так:

self.ui.doubleSpinBox_S1.valueChanged.connect(Save_param("S1",self.ui.doubleSpinBox_S1.value()))

Ответы (2 шт):

Автор решения: Дмитрий Сергеев

спасибо за просторы интернета

self.ui.doubleSpinBox_S1.valueChanged.connect(lambda:Save_param("S1",self.ui.doubleSpinBox_S1.value()))

вот так работает

lamda: $)
→ Ссылка
Автор решения: S. Nick

я не уверен что правильно понял вас, но попробуйте

from PyQt5.Qt import *


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        central_widget = QWidget()
        self.setCentralWidget(central_widget)

        self.doubleSpinBox_S1 = QSpinBox()
        self.doubleSpinBox_S1.setRange(1, 42)
        self.doubleSpinBox_S1.setValue(12)  

#        self.doubleSpinBox_S1.valueChanged.connect(Save_param("S1",'10'))        
        self.doubleSpinBox_S1.valueChanged.connect(
            lambda value, s1="S1": self.save_param(value, s1))

        self.sizeLabel = QLabel(
            "Значениe из SpinBoxt: <b style='color: blue;'> 12 </b>")

        layout = QVBoxLayout(central_widget)
        layout.addWidget(self.sizeLabel)
        layout.addWidget(self.doubleSpinBox_S1)

    def save_param(self, value, s_param):
        self.sizeLabel.setText(
            f"Значениe из SpinBoxt: <b style='color: blue;'> {value} </b>; "
            f"s_param: `<b style='color: blue;'> {s_param} </b>`"
        )
        '''
        with open('config.json', 'r') as f:
            config=json.load(f)
            
        config[s_param]=value
        
        with open('config.json', 'w') as f:
            json.dump(config, f)
        '''


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка