qpainter绘制按钮
时间: 2023-09-15 19:19:06 浏览: 239
使用 QPainter 绘制按钮可以通过以下步骤实现:
1. 创建一个 QPushButton 控件。
2. 重写 QPushButton 的 paintEvent() 方法。
3. 在 paintEvent() 方法中创建 QPainter 对象。
4. 设置 QPainter 对象的画笔和画刷。
5. 绘制矩形和边框。
6. 绘制按钮的文本。
以下是一个简单的绘制按钮的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QPainter, QColor, QFont
from PyQt5.QtCore import Qt
class MyButton(QPushButton):
def __init__(self, parent=None):
super(MyButton, self).__init__(parent)
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
# 绘制按钮的矩形和边框
painter.setPen(QColor(255, 255, 255))
painter.setBrush(QColor(50, 50, 50))
painter.drawRect(0, 0, self.width(), self.height())
# 绘制按钮的文本
painter.setFont(QFont('Arial', 12))
painter.setPen(QColor(255, 255, 255))
painter.drawText(self.rect(), Qt.AlignCenter, self.text())
if __name__ == '__main__':
app = QApplication([])
window = QWidget()
button = MyButton('绘制按钮')
button.setMinimumSize(100, 30)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec_()
```
在这个示例中,我们创建了一个 MyButton 类,它继承自 QPushButton,重写了 paintEvent() 方法来绘制按钮。在 paintEvent() 方法中,我们创建了一个 QPainter 对象,设置了画笔和画刷,绘制了矩形和边框,以及按钮的文本。最后,我们将 MyButton 类添加到窗口中,并使用 QVBoxLayout 布局管理器将其布局。
阅读全文