def __init__(self, parent, *args, **kw): super(SvcParameterWidget, self).__init__(parent=parent, *args, **kw) vbox = QtWidgets.QVBoxLayout(self) vbox.setContentsMargins(2, 2, 2, 2) vbox.setSpacing(2) frame = QtWidgets.QToolBar("SVC", self) frame.setIconSize(QtCore.QSize(16, 16)) self.treeview = TreeView(parent, self) model = AtMultiClassSvmItemModel(self.treeview) model.classesChanged.connect(parent.updateClassifier) self.treeview.setModel(model) self.treeview.setColumnWidth(0, 75) self.treeview.setColumnWidth(1, 75) self.treeview.setColumnWidth(2, 30) self.addClassBtn = QtWidgets.QToolButton() self.addClassBtn.setToolTip("Add new class") self.addClassBtn.setIcon(QtGui.QIcon(":/add-class.png")) self.addClassBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self.addClassBtn.pressed.connect(self.onAddBtn) self.removeClassBtn = QtWidgets.QToolButton() self.removeClassBtn.setToolTip("Delete selected class") self.removeClassBtn.setIcon(QtGui.QIcon(":/remove-class.png")) self.removeClassBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeClassBtn.pressed.connect(self.onRemoveBtn) self.removeClassBtn.pressed.connect(parent.predictionInvalid) # disable the sanity check whether a sample is already reassign to # an other class self.allowReassign = QtWidgets.QCheckBox("allow reassign") self.allowReassign.stateChanged.connect(model.allowReassign) model.allowReassign(self.allowReassign.isChecked()) self.crossValidBtn = QtWidgets.QToolButton() self.crossValidBtn.setToolTip("Cross-validation Dialog") self.crossValidBtn.setIcon(QtGui.QIcon(":grid-search.png")) self.crossValidBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self.crossValidBtn.clicked.connect(parent.validateClassifier) frame.addWidget(self.addClassBtn) frame.addWidget(self.removeClassBtn) frame.addWidget(self.crossValidBtn) frame.addWidget(self.allowReassign) self.treeview.activated.connect(parent.onActivated) self.treeview.setItemDelegateForColumn(1, ColorDelegate(self.treeview)) self.treeview.setItemDelegateForColumn(2, ButtonDelegate(self.treeview)) self.treeview.setSelectionMode(self.treeview.ContiguousSelection) for row in range(model.rowCount()): self.treeview.openPersistentEditor( model.index(row, model.ButtonColumn)) model.layoutChanged.emit() vbox.addWidget(frame) vbox.addWidget(self.treeview) parent.itemCountChanged.connect(self.updateCounts)
def __init__(self, parent, *args, **kw): super(MClParameterWidget, self).__init__(parent=parent, *args, **kw) self.parent = parent vbox = QtWidgets.QVBoxLayout(self) vbox.setContentsMargins(2, 2, 2, 2) vbox.setSpacing(2) frame = QtWidgets.QToolBar("MCl", self) frame.setIconSize(QtCore.QSize(16, 16)) self.treeview = TreeView(parent, self) model = AtMultiClassSvmItemModel(self.treeview) model.classesChanged.connect(parent.updateClassifier) model.allowReassign(Qt.Checked) self.treeview.setModel(model) self.treeview.setColumnWidth(0, 75) self.treeview.setColumnWidth(1, 75) self.treeview.setColumnWidth(2, 30) self.addClassBtn = QtWidgets.QToolButton() self.addClassBtn.setToolTip("Add new Class") self.addClassBtn.setIcon(QtGui.QIcon(":/add-class.png")) self.addClassBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.addClassBtn.pressed.connect(self.onAddBtn) self.removeClassBtn = QtWidgets.QToolButton() self.removeClassBtn.setToolTip("Delete selected Class") self.removeClassBtn.setIcon(QtGui.QIcon(":/remove-class.png")) self.removeClassBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeClassBtn.pressed.connect(self.onRemoveBtn) self.removeClassBtn.pressed.connect( parent.predictionInvalid) self.removeItemBtn = QtWidgets.QToolButton() self.removeItemBtn.setToolTip("Remove selected Items") self.removeItemBtn.setIcon(QtGui.QIcon(":/oxygen/list-remove.png")) self.removeItemBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeItemBtn.pressed.connect(parent.removeSelected) self.removeAllBtn = QtWidgets.QToolButton() self.removeAllBtn.setToolTip("Remove all Items") self.removeAllBtn.setIcon(QtGui.QIcon(":/oxygen/edit-clear.png")) self.removeAllBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeAllBtn.pressed.connect(parent.removeAll) frame.addWidget(self.addClassBtn) frame.addWidget(self.removeClassBtn) frame.addWidget(self.removeItemBtn) frame.addWidget(self.removeAllBtn) self.treeview.activated.connect(parent.onActivated) self.treeview.setItemDelegateForColumn(1, ColorDelegate(self.treeview)) self.treeview.setItemDelegateForColumn(2, ButtonDelegate(self.treeview)) self.treeview.setSelectionMode(self.treeview.ContiguousSelection) for row in range(model.rowCount()): self.treeview.openPersistentEditor( model.index(row, model.ButtonColumn)) model.layoutChanged.emit() vbox.addWidget(frame) vbox.addWidget(self.treeview) self.treeview.addButtonClicked.connect(self.onPredict) self.removeClassBtn.clicked.connect(self.onPredict) self.removeAllBtn.clicked.connect(self.onPredict)
def __init__(self, parent, *args, **kw): super(SvcParameterWidget, self).__init__(parent=parent, *args, **kw) vbox = QtWidgets.QVBoxLayout(self) vbox.setContentsMargins(2, 2, 2, 2) vbox.setSpacing(2) frame = QtWidgets.QToolBar("SVC", self) frame.setIconSize(QtCore.QSize(16, 16)) self.treeview = TreeView(parent, self) model = AtMultiClassSvmItemModel(self.treeview) model.classesChanged.connect(parent.updateClassifier) self.treeview.setModel(model) self.treeview.setColumnWidth(0, 75) self.treeview.setColumnWidth(1, 75) self.treeview.setColumnWidth(2, 30) self.predictBtn = PredictButton("Predict", self) self.predictBtn.clicked.connect(parent.onPredict) vbox.addWidget(self.predictBtn) self.addClassBtn = QtWidgets.QToolButton() self.addClassBtn.setToolTip("Add new Class") self.addClassBtn.setIcon(QtGui.QIcon(":/add-class.png")) self.addClassBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.addClassBtn.pressed.connect(self.onAddBtn) self.removeClassBtn = QtWidgets.QToolButton() self.removeClassBtn.setToolTip("Delete selected Class") self.removeClassBtn.setIcon(QtGui.QIcon(":/remove-class.png")) self.removeClassBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeClassBtn.pressed.connect(self.onRemoveBtn) self.removeClassBtn.pressed.connect( parent.predictionInvalid) # disable the sanity check whether a sample is already reassign to # an other class self.allowReassign = QtWidgets.QCheckBox("allow reassign") self.allowReassign.stateChanged.connect(model.allowReassign) self.allowReassign.setToolTip( "Allows reassignment of Samples to another Class") model.allowReassign(self.allowReassign.isChecked()) self.crossValidBtn = QtWidgets.QToolButton() self.crossValidBtn.setToolTip("Cross-validation Dialog") self.crossValidBtn.setIcon(QtGui.QIcon(":grid-search.png")) self.crossValidBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.crossValidBtn.clicked.connect(parent.validateClassifier) self.removeItemBtn = QtWidgets.QToolButton() self.removeItemBtn.setToolTip("Remove selected Items") self.removeItemBtn.setIcon(QtGui.QIcon(":/oxygen/list-remove.png")) self.removeItemBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeItemBtn.pressed.connect(parent.removeSelected) self.removeAllBtn = QtWidgets.QToolButton() self.removeAllBtn.setToolTip("Remove all Items") self.removeAllBtn.setIcon(QtGui.QIcon(":/oxygen/edit-clear.png")) self.removeAllBtn.setSizePolicy( QSizePolicy.Preferred, QSizePolicy.Preferred) self.removeAllBtn.pressed.connect(parent.removeAll) frame.addWidget(self.addClassBtn) frame.addWidget(self.removeClassBtn) frame.addWidget(self.removeItemBtn) frame.addWidget(self.removeAllBtn) frame.addSeparator() frame.addWidget(self.crossValidBtn) frame.addWidget(self.allowReassign) self.treeview.activated.connect(parent.onActivated) self.treeview.setItemDelegateForColumn(1, ColorDelegate(self.treeview)) self.treeview.setItemDelegateForColumn(2, ButtonDelegate(self.treeview)) self.treeview.setSelectionMode(self.treeview.ContiguousSelection) for row in range(model.rowCount()): self.treeview.openPersistentEditor( model.index(row, model.ButtonColumn)) model.layoutChanged.emit() vbox.addWidget(frame) vbox.addWidget(self.treeview) parent.itemCountChanged.connect(self.updateCounts)