python qpushbutton的自定义形状如何绘制

avatar
作者
猴君
阅读量:0

要在PyQt5中为QPushButton设置自定义形状,您需要创建一个自定义按钮类并重写paintEvent()方法。以下是一个示例,展示了如何创建一个圆形QPushButton:

import sys from PyQt5.QtCore import Qt, QPointF from PyQt5.QtGui import QPainter, QBrush, QPen from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton  class CircleButton(QPushButton):     def __init__(self, parent=None):         super().__init__(parent)         self.setFixedSize(100, 100)      def paintEvent(self, event):         painter = QPainter(self)         painter.setRenderHint(QPainter.Antialiasing)          brush = QBrush(Qt.blue)         pen = QPen(Qt.black)         pen.setWidth(2)          painter.setBrush(brush)         painter.setPen(pen)          center = QPointF(self.width() / 2, self.height() / 2)         radius = min(self.width(), self.height()) / 2 - pen.width() / 2          painter.drawEllipse(center, radius, radius)  class MainWindow(QWidget):     def __init__(self):         super().__init__()         self.initUI()      def initUI(self):         layout = QVBoxLayout()         self.circle_button = CircleButton()         layout.addWidget(self.circle_button)          self.setLayout(layout)  if __name__ == '__main__':     app = QApplication(sys.argv)     main_window = MainWindow()     main_window.show()     sys.exit(app.exec_()) 

这个示例创建了一个名为CircleButton的自定义QPushButton类。在paintEvent()方法中,我们使用QPainter绘制一个蓝色的圆形按钮,边界为黑色。然后,在MainWindow类中,我们创建了一个CircleButton实例并将其添加到布局中。

您可以根据需要修改paintEvent()方法以绘制不同的形状。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!