Beispiel #1
0
    def __init__(self, parent=None):
        # boilerplate
        QtGui.QDialog.__init__(self, parent)
        self.ui = Ui_Helper()
        self.ui.setupUi(self)
        # load sorting orders into combobox
        from vrptw import sort_keys
        self.ui.greedyOrder.addItems(sorted(sort_keys.keys()))
        # add custom mpl canvas
        self.plot = Plot(self)
        # the worker thread (one, for now)
        self.worker = Worker(self)
        # the stopwatch placeholder
        self.watch = '(no watch set!)'

        QtCore.QObject.connect(self.ui.update, QtCore.SIGNAL("clicked()"), self.plot_savings)
        QtCore.QObject.connect(self.ui.best, QtCore.SIGNAL("clicked()"), self.plot_best)
        QtCore.QObject.connect(self.ui.greedy, QtCore.SIGNAL("clicked()"), self.plot_greedy)
        QtCore.QObject.connect(self.ui.clearPlot, QtCore.SIGNAL("clicked()"), self.clear_plot)
Beispiel #2
0
class Helper(QtGui.QDialog):
    def __init__(self, parent=None):
        # boilerplate
        QtGui.QDialog.__init__(self, parent)
        self.ui = Ui_Helper()
        self.ui.setupUi(self)
        # load sorting orders into combobox
        from vrptw import sort_keys
        self.ui.greedyOrder.addItems(sorted(sort_keys.keys()))
        # add custom mpl canvas
        self.plot = Plot(self)
        # the worker thread (one, for now)
        self.worker = Worker(self)
        # the stopwatch placeholder
        self.watch = '(no watch set!)'

        QtCore.QObject.connect(self.ui.update, QtCore.SIGNAL("clicked()"), self.plot_savings)
        QtCore.QObject.connect(self.ui.best, QtCore.SIGNAL("clicked()"), self.plot_best)
        QtCore.QObject.connect(self.ui.greedy, QtCore.SIGNAL("clicked()"), self.plot_greedy)
        QtCore.QObject.connect(self.ui.clearPlot, QtCore.SIGNAL("clicked()"), self.clear_plot)

    def lock_ui(self):
        """Called before entering the background operation."""
        from stopwatch import StopWatch
        self.watch = StopWatch()
        self.ui.update.setEnabled(False)
        self.ui.best.setEnabled(False)

    def background_done(self):
        """Slot to unlock some UI elements after finished background operation."""
        self.ui.update.setEnabled(True)
        self.ui.best.setEnabled(True)
        self.ui.progressBar.setEnabled(False)
        self.ui.textEdit.append("Processing finished in %s seconds" % self.watch)
        print "What now?", self.watch

    def plot_best(self):
        self.worker.performOperation(BestOperation(self.tests_chosen()))

    def plot_savings(self):
        mi = self.ui.mi.value()
        waitlimit = self.ui.waitlimit.value() if self.ui.has_waitlimit.checkState() else None
        mfs = self.ui.mfs.checkState()
        self.worker.performOperation(SavingsOperation(self.tests_chosen(), mi, waitlimit, mfs))

    def plot_greedy(self):
        order = str(self.ui.greedyOrder.currentText())
        self.worker.performOperation(GreedyOperation(self.tests_chosen(), order))

    def clear_plot(self):
        """Slot for clearing the plot."""
        self.plot.reset()

    def init_progress(self, maxProgress):
        """Slot for resetting the progress bar's value to 0 with a new maximum."""
        self.ui.progressBar.setEnabled(True)
        self.ui.progressBar.setMaximum(maxProgress)
        self.ui.progressBar.setValue(0)

    def update_progress(self, progress):
        """Slot for updating the progress bar."""
        print "--- one done ---"
        self.ui.progressBar.setValue(progress)

    def tests_chosen(self):
        """Return the selected pattern in the families list."""
        return str(self.ui.families.currentItem().text())