qt 自定义button
时间: 2023-10-14 09:21:10 浏览: 34
在 Qt 中自定义按钮可以通过继承 QPushButton 类并重写其绘制函数来实现。下面是一个简单的示例:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor, QBrush
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
class CustomButton(QPushButton):
def __init__(self, parent=None):
super().__init__(parent)
self.setFixedWidth(100)
self.setFixedHeight(30)
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(Qt.NoPen)
if self.isDown():
painter.setBrush(QColor("#2ecc71"))
else:
painter.setBrush(QColor("#27ae60"))
painter.drawRoundedRect(self.rect(), 10, 10)
painter.setPen(QColor("#ffffff"))
painter.drawText(self.rect(), Qt.AlignCenter, self.text())
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Custom Button')
self.setGeometry(300, 300, 250, 150)
btn = CustomButton(self)
btn.setText('Click me')
btn.move(75, 60)
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
上面的示例中,我们继承了 QPushButton 类并重写了其 paintEvent() 函数。paintEvent() 函数用于绘制按钮的外观。我们使用 QPainter 类来进行绘制,并设置了按钮的背景色和文本颜色。在按钮被按下时,我们改变了按钮的背景色,使其看起来更加自然。
这只是一个简单的示例,你可以根据自己的需求来自定义按钮的外观和行为。