Как передать параметры 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_())
