示例#1
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
示例#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
示例#3
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)
示例#4
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
示例#5
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)