def __init__(self, parent=None): super(ControlMainWindow, self).__init__(parent) self.ui = Ui_MainWindow() # get layout from 'pyside-uic mainwindow.ui' command self.ui.setupUi(self) self.dragPosition = None bcolor = qRgb(200, 200, 200) lcolor = qRgb(0, 0, 0) self.canvas = Canvas(bcolor, lcolor) self.ui.centralwidget.layout().insertWidget(1, self.canvas) self.ui.paintButton.clicked.connect(self.paintClick) self.pointsTable = TupleTableWidget(self.ui.ghostWidget) # set up test data self.pointsTable.fromList(testPoly) self.ui.task4_x1.setValue(testRect[0]) self.ui.task4_y1.setValue(testRect[1]) self.ui.task4_x2.setValue(testRect[2]) self.ui.task4_y2.setValue(testRect[3]) add_rule_callback = lambda: self.pointsTable.addRow("0", "0") remove_rule_callback = lambda: self.pointsTable.delRow() self.ui.addRuleButton.clicked.connect(add_rule_callback) self.ui.removeRuleButton.clicked.connect(remove_rule_callback) self.radios = [self.ui.radio_task2, self.ui.radio_task3, self.ui.radio_task4] self.frames = [self.ui.frame_task2, self.ui.frame_task3, self.ui.frame_task4] self.tasks = [self.task2, self.task3, self.task4] self.allinputs = [ self.ui.task2_x1, self.ui.task2_y1, self.ui.task2_x2, self.ui.task2_y2, self.ui.task3_a, self.ui.task3_b, # to be continued... ] for x in self.allinputs: x.valueChanged.connect(self.canvas.repaint) for x in self.radios: x.toggled.connect(self.radioClick) self.radioClick()
class ControlMainWindow(QMainWindow): """A main window class """ def __init__(self, parent=None): super(ControlMainWindow, self).__init__(parent) self.ui = Ui_MainWindow() # get layout from 'pyside-uic mainwindow.ui' command self.ui.setupUi(self) self.dragPosition = None bcolor = qRgb(200, 200, 200) lcolor = qRgb(0, 0, 0) self.canvas = Canvas(bcolor, lcolor) self.ui.centralwidget.layout().insertWidget(1, self.canvas) self.ui.paintButton.clicked.connect(self.paintClick) self.pointsTable = TupleTableWidget(self.ui.ghostWidget) # set up test data self.pointsTable.fromList(testPoly) self.ui.task4_x1.setValue(testRect[0]) self.ui.task4_y1.setValue(testRect[1]) self.ui.task4_x2.setValue(testRect[2]) self.ui.task4_y2.setValue(testRect[3]) add_rule_callback = lambda: self.pointsTable.addRow("0", "0") remove_rule_callback = lambda: self.pointsTable.delRow() self.ui.addRuleButton.clicked.connect(add_rule_callback) self.ui.removeRuleButton.clicked.connect(remove_rule_callback) self.radios = [self.ui.radio_task2, self.ui.radio_task3, self.ui.radio_task4] self.frames = [self.ui.frame_task2, self.ui.frame_task3, self.ui.frame_task4] self.tasks = [self.task2, self.task3, self.task4] self.allinputs = [ self.ui.task2_x1, self.ui.task2_y1, self.ui.task2_x2, self.ui.task2_y2, self.ui.task3_a, self.ui.task3_b, # to be continued... ] for x in self.allinputs: x.valueChanged.connect(self.canvas.repaint) for x in self.radios: x.toggled.connect(self.radioClick) self.radioClick() def paintClick(self): for x in xrange(3): if self.radios[x].isChecked(): self.tasks[x]() GlobalQueue.queue = GlobalQueue.Queue() GlobalQueue.queue.force = False self.canvas.repaint() def radioClick(self): for x in xrange(3): if self.radios[x].isChecked(): self.frames[x].setEnabled(True) else: self.frames[x].setEnabled(False) if self.canvas.task is not None: self.paintClick() def keyPressEvent(self, event): """Overrides default keypress """ key = event.key() if key == QtCore.Qt.Key_Escape: self.close() elif key == QtCore.Qt.Key_Equal: if GlobalQueue.queue is not None and not GlobalQueue.queue.isDone(): GlobalQueue.queue.next() GlobalQueue.queue.force = True self.canvas.repaint() def mousePressEvent(self, event): """Make window draggable part 1 """ if event.button() == Qt.LeftButton: self.dragPosition = event.globalPos() - self.frameGeometry().topLeft() event.accept() def mouseMoveEvent(self, event): """Make window draggable part 2 """ if event.buttons() and Qt.LeftButton: self.move(event.globalPos() - self.dragPosition) event.accept() def task2(self): inputs = [self.ui.task2_x1, self.ui.task2_y1, self.ui.task2_x2, self.ui.task2_y2] self.canvas.task = self.canvas.task2 self.canvas.data = inputs def task3(self): inputs = [self.ui.task3_a, self.ui.task3_b] self.canvas.task = self.canvas.task3 self.canvas.data = inputs def task4(self): inputs = [self.ui.task4_x1, self.ui.task4_y1, self.ui.task4_x2, self.ui.task4_y2] self.canvas.task = self.canvas.task4 self.canvas.data = (self.pointsTable.toList(), inputs)