コード例 #1
0
    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)
コード例 #2
0
ファイル: manual.py プロジェクト: rhoef/afw
    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)
コード例 #3
0
ファイル: svc.py プロジェクト: rhoef/afw
    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)