2

我想在 pyqt 中创建自己的 Qpushbutton 形状。谁能告诉我如何创建这个谢谢

4

2 回答 2

4

我认为你应该使用 QT-Stylesheets 来设置 QPushButton 的样式

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

border-image为其添加图片

于 2013-02-05T17:58:12.170 回答
2

这是一个使用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_())
于 2013-02-05T23:38:51.720 回答