示例#1
0
    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))
示例#2
0
def canvas(qtbot) -> Canvas:
    controller = ControllerMockup()

    gui = MainWindow(controller)
    gui.show()
    qtbot.addWidget(gui)

    canvas = Canvas(controller)
    assert canvas.hasMouseTracking() is True
    return canvas
示例#3
0
    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')