def keybingPressEvent(self, event): nonValid = self.currentNoValidKey + [QtCore.Qt.Key_W,QtCore.Qt.Key_A,QtCore.Qt.Key_S, QtCore.Qt.Key_D, QtCore.Qt.Key_Alt, QtCore.Qt.Key_Escape] if event.key() in nonValid : self.currentToolButton.setChecked(False) return elif event.key() == QtCore.Qt.Key_Control : self.currentLineEdit.setText('Ctrl') elif event.key() == QtCore.Qt.Key_Shift : self.currentLineEdit.setText('Shift') else : self.currentLineEdit.setText(QtGui.QKeySequence(event.key()).toString()) self.currentNoValidKey.remove(int(self.currentDictParam[self.currentName])) self.currentNoValidKey.append(event.key()) self.currentToolButton.setChecked(False) self.releaseKeyboard() self.keyPressEvent = QtWidgets.QMainWindow.keyPressEvent
def saveToJSON(self) : JSON2Save = {} for key, value in self.paramList.items() : if type(value) == QtWidgets.QLineEdit : if value.text() == 'Ctrl' : JSON2Save[key] = str(QtCore.Qt.Key_Control) elif value.text() == 'Shift' : JSON2Save[key] = str(QtCore.Qt.Key_Shift) else : keyID = QtGui.QKeySequence().fromString(value.text()) JSON2Save[key] = str(keyID[0]) elif type(value) == QtWidgets.QSpinBox : JSON2Save[key] = str(value.value()) elif type(value) == QtWidgets.QComboBox : JSON2Save[key] = value.currentText() with open(self.JSONPath, 'w') as f : json.dump(JSON2Save, f) self.currentDictParam = JSON2Save
def setFromJSON(self): with open(self.JSONPath) as f : dictParam = json.load(f) for key, value in self.paramList.items() : if type(value) == QtWidgets.QLineEdit : if int(dictParam[key]) == QtCore.Qt.Key_Control: value.setText('Ctrl') elif int(dictParam[key]) == QtCore.Qt.Key_Shift : value.setText('Shift') else : keyboard = int(dictParam[key]) value.setText(QtGui.QKeySequence(keyboard).toString()) self.currentNoValidKey.append(int(dictParam[key])) elif type(value) == QtWidgets.QSpinBox : value.setValue(int(dictParam[key])) elif type(value) == QtWidgets.QComboBox : value.setCurrentText(dictParam[key]) self.currentDictParam = dictParam