def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_PrefEditor() self.ui.setupUi(self) self.pref_model = PreferencesModel() self.ui.pref_view.setModel(self.pref_model)
class PreferencesWidgetEditor(QWidget): """ A widget to edit preferences, using PreferencesModel in a table view and buttons to let the user interact. """ def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_PrefEditor() self.ui.setupUi(self) self.pref_model = PreferencesModel() self.ui.pref_view.setModel(self.pref_model) @Slot() def add_pref(self): self.pref_model.add_empty_pref() # enter in edit mode for the pref name index = self.pref_model.index(self.pref_model.rowCount() - 1, 0) self.ui.pref_view.edit(index) @Slot() def add_prefs_from_file(self): fname = QFileDialog.getOpenFileName( self, "Choose a preference file", filter="pref file (*.json *.ini)", ) if fname: self.pref_model.add_prefs_from_file(unicode(fname)) @Slot() def remove_selected_prefs(self): selected_rows = sorted( set(i.row() for i in self.ui.pref_view.selectedIndexes()), reverse=True ) for row in selected_rows: self.pref_model.remove_pref(row) def get_prefs(self): return self.pref_model.prefs[:]