Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PySide2.QtWidgets import QWidget, QApplication
- from PySide2.QtGui import QPainter, QBrush, QColor, QFont
- from PySide2.QtCore import Signal, Qt
- import sys
- class CustomButton(QWidget):
- mouseClicked = Signal()
- def __init__(self):
- super(CustomButton, self).__init__()
- self.highlight = False
- self.pressed = False
- def mousePressEvent(self, event):
- print("Mouse clicked!")
- self.pressed = True
- self.mouseClicked.emit()
- self.repaint()
- def mouseReleaseEvent(self, event):
- self.pressed = False
- self.repaint()
- def paintEvent(self, event):
- painter = QPainter()
- painter.begin(self)
- self.drawWidget(painter)
- painter.end()
- def enterEvent(self, event):
- self.highlight = True
- QApplication.setOverrideCursor(Qt.PointingHandCursor)
- self.repaint()
- def leaveEvent(self, event):
- self.highlight = False
- QApplication.restoreOverrideCursor()
- self.repaint()
- def drawWidget(self, painter):
- rect = self.rect()
- painter.setBrush(QBrush(QColor("green")))
- if self.highlight:
- painter.setBrush(QBrush(QColor("red")))
- if self.pressed:
- painter.setBrush(QBrush(QColor("lightBlue")))
- painter.drawRect(rect)
- # create a custom pen with 5 pixel width and blue color
- font = QFont()
- font.setPointSize(30)
- font.setFamily("consolas")
- painter.setPen(QColor("blue"))
- painter.setFont(font)
- painter.drawText(rect, Qt.AlignHCenter | Qt.AlignVCenter, "Hello World!")
- app = QApplication(sys.argv)
- win = CustomButton()
- win.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement