Team Ai
Apppublic

radames/Text2Human-API

sourceHugging Faceupdated 3y agoView on Hugging Face
1likes
mouse_event.py130 linesDownload Raw Back to ui
1# -*- coding: utf-8 -*-2 3import numpy as np4from PyQt5.QtCore import *5from PyQt5.QtGui import *6from PyQt5.QtWidgets import *7 8color_list = [9    QColor(0, 0, 0),10    QColor(255, 250, 250),11    QColor(220, 220, 220),12    QColor(250, 235, 215),13    QColor(255, 250, 205),14    QColor(211, 211, 211),15    QColor(70, 130, 180),16    QColor(127, 255, 212),17    QColor(0, 100, 0),18    QColor(50, 205, 50),19    QColor(255, 255, 0),20    QColor(245, 222, 179),21    QColor(255, 140, 0),22    QColor(255, 0, 0),23    QColor(16, 78, 139),24    QColor(144, 238, 144),25    QColor(50, 205, 174),26    QColor(50, 155, 250),27    QColor(160, 140, 88),28    QColor(213, 140, 88),29    QColor(90, 140, 90),30    QColor(185, 210, 205),31    QColor(130, 165, 180),32    QColor(225, 141, 151)33]34 35 36class GraphicsScene(QGraphicsScene):37 38    def __init__(self, mode, size, parent=None):39        QGraphicsScene.__init__(self, parent)40        self.mode = mode41        self.size = size42        self.mouse_clicked = False43        self.prev_pt = None44 45        # self.masked_image = None46 47        # save the points48        self.mask_points = []49        for i in range(len(color_list)):50            self.mask_points.append([])51 52        # save the size of points53        self.size_points = []54        for i in range(len(color_list)):55            self.size_points.append([])56 57        # save the history of edit58        self.history = []59 60    def reset(self):61        # save the points62        self.mask_points = []63        for i in range(len(color_list)):64            self.mask_points.append([])65        # save the size of points66        self.size_points = []67        for i in range(len(color_list)):68            self.size_points.append([])69        # save the history of edit70        self.history = []71 72        self.mode = 073        self.prev_pt = None74 75    def mousePressEvent(self, event):76        self.mouse_clicked = True77 78    def mouseReleaseEvent(self, event):79        self.prev_pt = None80        self.mouse_clicked = False81 82    def mouseMoveEvent(self, event):  # drawing83        if self.mouse_clicked:84            if self.prev_pt:85                self.drawMask(self.prev_pt, event.scenePos(),86                              color_list[self.mode], self.size)87                pts = {}88                pts['prev'] = (int(self.prev_pt.x()), int(self.prev_pt.y()))89                pts['curr'] = (int(event.scenePos().x()),90                               int(event.scenePos().y()))91 92                self.size_points[self.mode].append(self.size)93                self.mask_points[self.mode].append(pts)94                self.history.append(self.mode)95                self.prev_pt = event.scenePos()96            else:97                self.prev_pt = event.scenePos()98 99    def drawMask(self, prev_pt, curr_pt, color, size):100        lineItem = QGraphicsLineItem(QLineF(prev_pt, curr_pt))101        lineItem.setPen(QPen(color, size, Qt.SolidLine))  # rect102        self.addItem(lineItem)103 104    def erase_prev_pt(self):105        self.prev_pt = None106 107    def reset_items(self):108        for i in range(len(self.items())):109            item = self.items()[0]110            self.removeItem(item)111 112    def undo(self):113        if len(self.items()) > 1:114            if len(self.items()) >= 9:115                for i in range(8):116                    item = self.items()[0]117                    self.removeItem(item)118                    if self.history[-1] == self.mode:119                        self.mask_points[self.mode].pop()120                        self.size_points[self.mode].pop()121                        self.history.pop()122            else:123                for i in range(len(self.items()) - 1):124                    item = self.items()[0]125                    self.removeItem(item)126                    if self.history[-1] == self.mode:127                        self.mask_points[self.mode].pop()128                        self.size_points[self.mode].pop()129                        self.history.pop()130