如何在PyQt中创建自定义形状QPushBtn

时间:2013-02-05 16:33:00

标签: python qt pyqt

我想在pyqt中创建自己的Qpushbutton形状。 任何人都可以告诉我如何创建这个 感谢

2 个答案:

答案 0 :(得分:4)

我认为您应该使用QT-Stylesheets来设置QPushButton

的样式
self.Qpushbutton.setStyleSheet("background-color: rgb(255, 255, 255);\n"
                                    "border:1px solid rgb(255, 170, 255);")

border-image为其添加图片

答案 1 :(得分:1)

以下是使用QRegionsetMask自定义窗口形状的示例,QPalette用于更改背景颜色,以及setStyleSheet用于其他属性:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from PyQt4 import QtGui, QtCore

class MyWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)

        self.region = QtGui.QRegion(QtCore.QRect(0, 0, 222, 222), QtGui.QRegion.Ellipse)
        self.setMask(self.region)

        self.palette = QtGui.QPalette()
        self.palette.setBrush(QtGui.QPalette.Background, QtGui.QColor('grey').dark(150))
        self.setPalette(self.palette)

        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        self.label = QtGui.QLabel(self)
        self.label.setText("A round widget!")
        self.label.setStyleSheet("QLabel { background-color : lightblue; color : white; }")
        self.label.setAlignment(QtCore.Qt.AlignCenter)

        self.layout = QtGui.QHBoxLayout(self)
        self.layout.addWidget(self.label)

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('MyWindow')

    main = MyWindow()
    main.resize(222, 222)
    main.show()

    sys.exit(app.exec_())