pyqt5优化按钮点击效果的代码
时间: 2023-05-30 09:04:22 浏览: 293
以下是一个简单的 PyQT5 代码示例,用于优化按钮点击效果:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyButton(QPushButton):
def __init__(self, parent=None):
super(MyButton, self).__init__(parent)
self.setMouseTracking(True)
self.setStyleSheet("QPushButton{background-color: #00bfff; color:#ffffff; border-radius: 10px; padding: 10px;}"
"QPushButton:hover{background-color:#1e90ff;}"
"QPushButton:pressed{background-color:#0080ff;}")
self.radius = 10
self.color = QColor('#00bfff')
def enterEvent(self, event):
self.color = QColor('#1e90ff')
self.update()
def leaveEvent(self, event):
self.color = QColor('#00bfff')
self.update()
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(Qt.NoPen)
painter.setBrush(self.color)
rect = self.rect()
painter.drawRoundedRect(rect, self.radius, self.radius)
painter.setPen(QColor("#ffffff"))
painter.drawText(rect, Qt.AlignCenter, self.text())
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('优化按钮点击效果')
button = MyButton("点击我")
button.setGeometry(50, 50, 200, 50)
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
这个 PyQT5 示例创建了一个自定义按钮类 MyButton,它继承自 QPushButton,并重写了一些方法来实现优化的按钮点击效果。在这个示例中,我们使用了鼠标跟踪事件来检测按钮的进入和离开事件,并使用 QPainter 来绘制按钮的圆角矩形形状和文本。我们还使用了样式表来设置按钮的颜色和样式,以及按钮的悬停和按下效果。最后,我们创建了一个示例窗口,并在其中添加了 MyButton。
运行代码,将看到一个带有优化点击效果的按钮。
阅读全文