from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtWidgets import QPushButton, QApplication
class StylishButton(QPushButton):
def __init__(self, text, parent=None):
super().__init__(text, parent)
# 添加自定义的初始化代码
self.setCustomProperties()
self.setCustomStyle()
def setCustomProperties(self):
# 添加自定义的属性设置
self.setFixedSize(150, 50)
def setCustomStyle(self):
# 添加自定义的样式设置
self.setStyleSheet(
'''
QPushButton {
background-color: #fca311;
color: #ffffff;
border: none;
border-radius: 10px;
font-size: 16px;
}
QPushButton:hover {
background-color: #e5a634;
}
QPushButton:pressed {
background-color: #d18925;
}
'''
)
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
print("Custom button clicked!")
# 调用父类的方法以保留按钮的默认行为
super().mousePressEvent(event)
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(QPen(QColor("#14213d"), 2)) # 设置边框颜色和宽度
painter.setBrush(QColor("#fca311")) # 设置背景颜色
painter.drawRoundedRect(self.rect(), 10, 10) # 绘制圆角矩形
painter.drawText(self.rect(), Qt.AlignCenter, self.text())
painter.end()
if __name__ == '__main__':
app = QApplication([])
button = StylishButton("Click Me")
button.show()
app.exec()