Exemplo n.º 1
0
    def __init__(self, parent):
        super(QNEBlock, self).__init__(parent)

        self.m_nodeEditor = None
        self.m_name = ""
        self.m_uuid = ""

        self.normalBrush = QApplication.palette().dark()
        normalColor = self.normalBrush.color()
        normalColor.setAlphaF(0.8)
        self.normalBrush.setColor(normalColor)

        self.selectedBrush = QApplication.palette().light()
        selectedColor = self.selectedBrush.color()
        selectedColor.setAlphaF(0.8)
        self.selectedBrush.setColor(selectedColor)

        self.pen = QPen(QApplication.palette().text().color(), 1)

        path = QPainterPath()
        path.addRoundedRect(-50, -15, 100, 30, 5, 5)
        self.setPath(path)
        self.setBrush(self.normalBrush)
        self.setFlag(QGraphicsItem.ItemIsMovable)
        self.setFlag(QGraphicsItem.ItemIsSelectable)

        self.effect = QGraphicsDropShadowEffect(None)
        self.effect.setBlurRadius(8)
        self.effect.setOffset(2, 2)
        self.setGraphicsEffect(self.effect)

        self.horzMargin = 20
        self.vertMargin = 5
        self.width = self.horzMargin
        self.height = self.vertMargin
Exemplo n.º 2
0
class RaisedButton(QPushButton):
    """RaisedButton(str text, color, QSize size, QWidget parent=None"""

    def __init__(self, text, color, size=QSize(80, 30), parent=None):
        super(RaisedButton, self).__init__(parent)
        self.resize(size)
        if color == None:
            color = QColor(66, 165, 245)
        else:
            color = QColor(color)
        self.isFlat = True
        self.color = color
        self.setText(text)
        self.effect = QGraphicsDropShadowEffect(self.parent())
        self.effect.setOffset(3)
        self.effect.setColor(QColor(0, 0, 0, 40))
        self.setGraphicsEffect(self.effect)
        self.press = False
        with open("QPushButton-Raised.qss") as f:
            dat = f.read()
            color1 = color.name()
            color2 = color.lighter().name()
            dat = dat % (str(color1), str(color2))
            self.setStyleSheet(dat)

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.effect.setEnabled(False)
            self.press = True

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.effect.setEnabled(True)
            self.press = False
Exemplo n.º 3
0
class RaisedButton(QPushButton):
    """RaisedButton(str text, color, QSize size, QWidget parent=None"""
    def __init__(self, text, color, size=QSize(80, 30), parent=None):
        super(RaisedButton, self).__init__(parent)
        self.resize(size)
        if color == None:
            color = QColor(66, 165, 245)
        else:
            color = QColor(color)
        self.isFlat = True
        self.color = color
        self.setText(text)
        self.effect = QGraphicsDropShadowEffect(self.parent())
        self.effect.setOffset(3)
        self.effect.setColor(QColor(0, 0, 0, 40))
        self.setGraphicsEffect(self.effect)
        self.press = False
        with open("QPushButton-Raised.qss") as f:
            dat = f.read()
            color1 = color.name()
            color2 = color.lighter().name()
            dat = dat % (str(color1), str(color2))
            self.setStyleSheet(dat)

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.effect.setEnabled(False)
            self.press = True

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.effect.setEnabled(True)
            self.press = False
Exemplo n.º 4
0
 def __init__(self,
              color=QColor(243, 40, 109, 255),
              radius=50,
              icon="plus.png",
              parent=None):
     super(FloatingActionButton, self).__init__(parent)
     if icon:
         self.pixmap = QPixmap(icon)
     self.setMouseTracking(True)
     self.effect = QGraphicsDropShadowEffect(self.parent())
     self.effect.setXOffset(4)
     self.effect.setBlurRadius(4)
     self.effect.setColor(QColor(0, 0, 0, 40))
     self.setGraphicsEffect(self.effect)
     self.color = color
     self.radius = radius
     self.resize(self.radius + 1, self.radius + 1)
     self.setMaximumSize(self.size())
     self.setMinimumSize(self.size())
     self.effect_size = self.radius
Exemplo n.º 5
0
 def __init__(self, text, color, size=QSize(80, 30), parent=None):
     super(RaisedButton, self).__init__(parent)
     self.resize(size)
     if color == None:
         color = QColor(66, 165, 245)
     else:
         color = QColor(color)
     self.isFlat = True
     self.color = color
     self.setText(text)
     self.effect = QGraphicsDropShadowEffect(self.parent())
     self.effect.setOffset(3)
     self.effect.setColor(QColor(0, 0, 0, 40))
     self.setGraphicsEffect(self.effect)
     self.press = False
     with open("QPushButton-Raised.qss") as f:
         dat = f.read()
         color1 = color.name()
         color2 = color.lighter().name()
         dat = dat % (str(color1), str(color2))
         self.setStyleSheet(dat)
Exemplo n.º 6
0
 def _test_run(self):
     app = QApplication(sys.argv)
     main = VisualScrapeWindow()
     path = SpiderPath()
     path.add_step(cars_url).add_step(cars_main_page)
     engine = CrawlEngine()
     handler = main.addSpider("Cars.com")
     engine.add_spider("Cars.Com").set_path(path).register_handler(
         handler).start()
     main.setWindowTitle("VisualScrape")
     main.setGraphicsEffect(QGraphicsDropShadowEffect())
     main.showMaximized()
     sys.exit(app.exec_())
Exemplo n.º 7
0
 def __init__(self, color=QColor(243, 40, 109, 255), radius=50, icon="plus.png", parent=None):
     super(FloatingActionButton, self).__init__(parent)
     if icon:
         self.pixmap = QPixmap(icon)
     self.setMouseTracking(True)
     self.effect = QGraphicsDropShadowEffect(self.parent())
     self.effect.setXOffset(4)
     self.effect.setBlurRadius(4)
     self.effect.setColor(QColor(0, 0, 0, 40))
     self.setGraphicsEffect(self.effect)
     self.color = color
     self.radius = radius
     self.resize(self.radius + 1, self.radius + 1)
     self.setMaximumSize(self.size())
     self.setMinimumSize(self.size())
     self.effect_size = self.radius
Exemplo n.º 8
0
def createGlowEffect(parent=None, color=GLOW_COLOR, radius=16, offset=1):
    """
  @param* parent  QWidget
  @param* color  QColor or str or None
  @param* radius  int
  @param* offset  int
  @return  QGraphicsEffect
  """
    #if skos.MAC: # graphics effect on mac is not observable
    #  return None
    #from pyeffects import GraphicsTextShadowEffect
    #ret = GraphicsTextShadowEffect(parent)
    ret = QGraphicsDropShadowEffect(parent)
    ret.setBlurRadius(radius)
    ret.setOffset(offset)
    if color:
        if not isinstance(color, QColor):
            color = QColor(color)
        ret.setColor(color)
    return ret
Exemplo n.º 9
0
 def test_ui(self):
     app = QApplication(sys.argv)
     main = VisualScrapeWindow()
     nefsak_handler = main.addSpider("NefsakLaptopSpider")
     #egyprices_handler = main.addSpider("EgypricesLaptopSpider")
     nefsak_path = SpiderPath()
     egyprices_path = SpiderPath()
     nefsak_path.add_step(nefsak_url).add_step(nefsak_main_page)
     egyprices_path.add_step(egyprices_url).add_step(egyprices_main_page)
     engine = CrawlEngine()
     engine.add_spider("NefsakLaptopSpider").set_path(
         nefsak_path).register_handler(nefsak_handler).start()
     #add_spider("EgypricesLaptopSpider").set_path(egyprices_path).register_handler(egyprices_handler).\
     #start()
     main.spider_stop_requested.connect(engine.stop_spider)
     main.setWindowTitle("VisualScrape")
     main.setGraphicsEffect(QGraphicsDropShadowEffect())
     main.showMaximized()
     sys.exit(app.exec_())
Exemplo n.º 10
0
 def __init__(self, text, color, size=QSize(80, 30), parent=None):
     super(RaisedButton, self).__init__(parent)
     self.resize(size)
     if color == None:
         color = QColor(66, 165, 245)
     else:
         color = QColor(color)
     self.isFlat = True
     self.color = color
     self.setText(text)
     self.effect = QGraphicsDropShadowEffect(self.parent())
     self.effect.setOffset(3)
     self.effect.setColor(QColor(0, 0, 0, 40))
     self.setGraphicsEffect(self.effect)
     self.press = False
     with open("QPushButton-Raised.qss") as f:
         dat = f.read()
         color1 = color.name()
         color2 = color.lighter().name()
         dat = dat % (str(color1), str(color2))
         self.setStyleSheet(dat)
Exemplo n.º 11
0
class FloatingActionButton(QPushButton):
    def __init__(self,
                 color=QColor(243, 40, 109, 255),
                 radius=50,
                 icon="plus.png",
                 parent=None):
        super(FloatingActionButton, self).__init__(parent)
        if icon:
            self.pixmap = QPixmap(icon)
        self.setMouseTracking(True)
        self.effect = QGraphicsDropShadowEffect(self.parent())
        self.effect.setXOffset(4)
        self.effect.setBlurRadius(4)
        self.effect.setColor(QColor(0, 0, 0, 40))
        self.setGraphicsEffect(self.effect)
        self.color = color
        self.radius = radius
        self.resize(self.radius + 1, self.radius + 1)
        self.setMaximumSize(self.size())
        self.setMinimumSize(self.size())
        self.effect_size = self.radius

    def paintEvent(self, event):
        painter = QPainter()
        painter.begin(self)
        painter.setRenderHint(QPainter.HighQualityAntialiasing)
        painter.setRenderHint(QPainter.Antialiasing)
        painter.setRenderHint(QPainter.SmoothPixmapTransform)
        painter.setBrush(self.color)
        if self.effect_size == self.radius:
            painter.drawEllipse(1, 1, self.radius - 1, self.radius - 1)
            painter.drawPixmap(QRect(14, 14, self.radius / 2, self.radius / 2),
                               self.pixmap)
        else:
            painter.drawEllipse(self.width() / 2,
                                self.height() / 2, self.effect_size,
                                self.effect_size)
        painter.end()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.animate()

    def animate(self):
        while self.effect_size > 1:
            self.effect_size -= 2
            self.repaint()
            time.sleep(0.008)
Exemplo n.º 12
0
class FloatingActionButton(QPushButton):
    def __init__(self, color=QColor(243, 40, 109, 255), radius=50, icon="plus.png", parent=None):
        super(FloatingActionButton, self).__init__(parent)
        if icon:
            self.pixmap = QPixmap(icon)
        self.setMouseTracking(True)
        self.effect = QGraphicsDropShadowEffect(self.parent())
        self.effect.setXOffset(4)
        self.effect.setBlurRadius(4)
        self.effect.setColor(QColor(0, 0, 0, 40))
        self.setGraphicsEffect(self.effect)
        self.color = color
        self.radius = radius
        self.resize(self.radius + 1, self.radius + 1)
        self.setMaximumSize(self.size())
        self.setMinimumSize(self.size())
        self.effect_size = self.radius

    def paintEvent(self, event):
        painter = QPainter()
        painter.begin(self)
        painter.setRenderHint(QPainter.HighQualityAntialiasing)
        painter.setRenderHint(QPainter.Antialiasing)
        painter.setRenderHint(QPainter.SmoothPixmapTransform)
        painter.setBrush(self.color)
        if self.effect_size == self.radius:
            painter.drawEllipse(1, 1, self.radius - 1, self.radius - 1)
            painter.drawPixmap(QRect(14, 14, self.radius / 2, self.radius / 2), self.pixmap)
        else:
            painter.drawEllipse(self.width() / 2, self.height() / 2, self.effect_size, self.effect_size)
        painter.end()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.animate()

    def animate(self):
        while self.effect_size > 1:
            self.effect_size -= 2
            self.repaint()
            time.sleep(0.008)
Exemplo n.º 13
0
class QNEBlock(QGraphicsPathItem):
    (Type) = (QGraphicsItem.UserType + 3)

    def __init__(self, parent):
        super(QNEBlock, self).__init__(parent)

        self.m_nodeEditor = None
        self.m_name = ""
        self.m_uuid = ""

        self.normalBrush = QApplication.palette().dark()
        normalColor = self.normalBrush.color()
        normalColor.setAlphaF(0.8)
        self.normalBrush.setColor(normalColor)

        self.selectedBrush = QApplication.palette().light()
        selectedColor = self.selectedBrush.color()
        selectedColor.setAlphaF(0.8)
        self.selectedBrush.setColor(selectedColor)

        self.pen = QPen(QApplication.palette().text().color(), 1)

        path = QPainterPath()
        path.addRoundedRect(-50, -15, 100, 30, 5, 5)
        self.setPath(path)
        self.setBrush(self.normalBrush)
        self.setFlag(QGraphicsItem.ItemIsMovable)
        self.setFlag(QGraphicsItem.ItemIsSelectable)

        self.effect = QGraphicsDropShadowEffect(None)
        self.effect.setBlurRadius(8)
        self.effect.setOffset(2, 2)
        self.setGraphicsEffect(self.effect)

        self.horzMargin = 20
        self.vertMargin = 5
        self.width = self.horzMargin
        self.height = self.vertMargin

    def __del__(self):
        #print("Del QNEBlock")
        pass

    def delete(self):
        for port in self.ports():
            for connection in port.connections():
                connection.delete()
            port.delete()
        if self.scene():
            self.scene().removeItem(self)

    def paint(self, painter, option, widget):
        if self.isSelected():
            painter.setBrush(self.selectedBrush)
        else:
            painter.setBrush(self.normalBrush)
        painter.setPen(self.pen)

        painter.drawPath(self.path())

    def itemChange(self, change, value):
        if change == QGraphicsItem.ItemSelectedHasChanged:
            self.setZValue(1 if value else 0)

        return value

    def addPort(self, name, hasInput=False, hasOutput=False, flags=0):
        port = QNEPort(self)
        port.setName(name)
        port.setCanConnect(hasInput, hasOutput)
        port.setNEBlock(self)
        port.setPortFlags(flags)

        innerSize = port.innerSize()
        width = innerSize.width()
        height = innerSize.height()
        if width > self.width - self.horzMargin:
            self.width = width + self.horzMargin
        self.height += height

        path = QPainterPath()
        path.addRoundedRect(-self.width / 2, -self.height / 2, self.width,
                            self.height, 5, 5)
        self.setPath(path)

        y = -self.height / 2 + self.vertMargin + port.radius()
        for port_ in self.childItems():
            if port_.type() != QNEPort.Type:
                continue

            port_.setPos(-self.width / 2 - port.radius(), y)
            port_.setWidth(self.width)
            y += port_.innerSize().height()

        return port

    def addNonePort(self, name):
        self.addPort(name, False, False)

    def addInputPort(self, name):
        self.addPort(name, True, False)

    def addOutputPort(self, name):
        self.addPort(name, False, True)

    def addInputOutputPort(self, name):
        self.addPort(name, True, True)

    def addNonePorts(self, names):
        for name in names:
            self.addNonePort(name)

    def addInputPorts(self, names):
        for name in names:
            self.addInputPort(name)

    def addOutputPorts(self, names):
        for name in names:
            self.addOutputPort(name)

    def addInputOutputPorts(self, names):
        for name in names:
            self.addInputOutputPort(name)

    def clone(self):
        block = QNEBlock(None)
        self.scene().addItem(block)

        for port_ in self.childItems():
            block.addPort(port_.portName(), port_.hasInput(),
                          port_.hasOutput(), port_.portFlags())

        return block

    def ports(self):
        result = []
        for port_ in self.childItems():
            if port_.type() == QNEPort.Type:
                result.append(port_)

        return result

    def type(self):
        return self.Type

    def setName(self, name):
        self.m_name = name

    def name(self):
        return self.m_name

    def setUuid(self, uuid):
        self.m_uuid = uuid

    def uuid(self):
        return self.m_uuid

    def setNodeEditor(self, editor):
        self.m_nodeEditor = editor

    def nodeEditor(self):
        return self.m_nodeEditor