亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

python qpushbutton的自定義形狀如何繪制

小樊
95
2024-09-06 14:22:29
欄目: 編程語言

要在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()方法以繪制不同的形狀。

0
佛坪县| 贺兰县| 瑞金市| 沽源县| 余干县| 安多县| 兰坪| 襄垣县| 丹棱县| 宜阳县| 黄骅市| 蛟河市| 恩施市| 抚顺市| 阜宁县| 青川县| 正宁县| 民勤县| 顺昌县| 富顺县| 蓬安县| 湖北省| 株洲县| 洱源县| 壤塘县| 蒙自县| 宁阳县| 汤原县| 双城市| 黎城县| 云安县| 东兰县| 嫩江县| 永善县| 桦南县| 马边| 宁乡县| 神木县| 祁东县| 浑源县| 莱西市|