def __init__(self): super().__init__(None, Qt.WindowFlags()) self.window().setWindowTitle(APP_NAME) self.setMinimumWidth(APP_MIN_WIDTH) self.setMinimumHeight(APP_MIN_HEIGHT) self.thread_pool = QThreadPool() self._initial_point = None self._drown_points = None self._canvas = Canvas( initial_point_handler=self._initial_point_handler) self._btn_draw = QPushButton(self.tr('Draw'), 90, 30, self._draw_points) self._btn_draw.setEnabled(False) self._btn_reset = QPushButton(self.tr('Reset'), 90, 30, self._reset_canvas) self._btn_reset.setEnabled(False) self._btn_save = QPushButton(self.tr('Save'), 90, 30, self._save_canvas) self._btn_save.setEnabled(False) self._points_count_line_edit = QLineEdit() self._segment_div_line_edit = QLineEdit() main_widget = self.init_main_widget() self.setCentralWidget(main_widget) # self.setup_navigation_menu() self.setFont(QFont('SansSerif', APP_FONT))
def canvas(qtbot) -> Canvas: controller = ControllerMockup() gui = MainWindow(controller) gui.show() qtbot.addWidget(gui) canvas = Canvas(controller) assert canvas.hasMouseTracking() is True return canvas
def __init__(self, controller): super().__init__() self._controller = controller # Initializing the whole UI self._ui = Ui_MainWindow() self._ui.setupUi(self) self.set_status() self.canvas = Canvas(controller) # Menu buttons self._ui.actionNew.triggered.connect(lambda: self._handle_action_new()) self._ui.actionSave.triggered.connect(lambda: self.save_dialog()) self._ui.actionLoad.triggered.connect(lambda: self.load_dialog()) self._ui.actionUndo.triggered.connect(lambda: self._controller.undo()) self._ui.actionRedo.triggered.connect(lambda: self._controller.redo()) self._ui.actionQuit.triggered.connect( lambda: self._handle_action_quit()) self.disable_undo() self.disable_redo() # Setting specific brush for canvas after clicking on one of the tool buttons self._ui.dotButton.clicked.connect( lambda: self._toggle_brush(DotShapeBrush())) self._ui.lineButton.clicked.connect( lambda: self._toggle_brush(LineShapeBrush())) self._ui.polylineButton.clicked.connect( lambda: self._toggle_brush(PolylineShapeBrush())) self._ui.rectagleButton.clicked.connect( lambda: self._toggle_brush(RectShapeBrush())) self._ui.circleButton.clicked.connect( lambda: self._toggle_brush(CircleShapeBrush())) self._ui.removeButton.clicked.connect( lambda: self._toggle_brush(RemoveShapeBrush())) self._ui.colorButton.clicked.connect(lambda: self._handle_color_pick()) self.brush_buttons = { DotShapeBrush(): self._ui.dotButton, LineShapeBrush(): self._ui.lineButton, PolylineShapeBrush(): self._ui.polylineButton, RectShapeBrush(): self._ui.rectagleButton, CircleShapeBrush(): self._ui.circleButton, RemoveShapeBrush(): self._ui.removeButton } self._ui.manualInput.returnPressed.connect( lambda: self._handle_user_input()) self._ui.canvasHolder.setWidget(self.canvas) self._ui.canvasHolder.setStyleSheet('background-color: white')