class HotkeyDialog(QDialog): shortcuts = None def __init__(self, shortcuts): super(HotkeyDialog, self).__init__() # shortcuts is a reference to the real shortcuts dict so modify it only if the user presses ok! self.shortcuts = shortcuts # Set up the user interface from Designer. self.ui = Ui_HotkeyDialog() self.ui.setupUi(self) self.setAttribute(Qt.WA_DeleteOnClose) # add hotkey edits for key in sorted(shortcuts.keys()): shortcut = self.shortcuts[key] edit = HotkeyLineEdit() edit.setKeySequence(shortcut.key()) self.ui.formLayout.addRow(key, edit) # save if the user accepts the dialog (presses ok) self.accepted.connect(self.save) # save shortcuts in container when the dialog is closed def save(self): log.info("Saving Hotkey stuff in Hotkeydialog") for i in range(0, self.ui.formLayout.rowCount()): key = self.ui.formLayout.itemAt(i, QFormLayout.LabelRole).widget().text() edit = self.ui.formLayout.itemAt(i, QFormLayout.FieldRole).widget() if key not in self.shortcuts: raise RuntimeError self.shortcuts[key].setKey(edit.key_sequence)
def __init__(self, shortcuts): super(HotkeyDialog, self).__init__() # shortcuts is a reference to the real shortcuts dict so modify it only if the user presses ok! self.shortcuts = shortcuts # Set up the user interface from Designer. self.ui = Ui_HotkeyDialog() self.ui.setupUi(self) self.setAttribute(Qt.WA_DeleteOnClose) # add hotkey edits for key in sorted(shortcuts.keys()): shortcut = self.shortcuts[key] edit = HotkeyLineEdit() edit.setKeySequence(shortcut.key()) self.ui.formLayout.addRow(key, edit) # save if the user accepts the dialog (presses ok) self.accepted.connect(self.save)