| 42 | |
| 43 | |
| 44 | class Dialog(QDialog): |
| 45 | |
| 46 | def __init__(self, *args, **kwargs): |
| 47 | super(Dialog, self).__init__(*args, **kwargs) |
| 48 | self.setObjectName('Custom_Dialog') |
| 49 | self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint) |
| 50 | self.setAttribute(Qt.WA_TranslucentBackground, True) |
| 51 | self.setStyleSheet(Stylesheet) |
| 52 | self.initUi() |
| 53 | # 添加阴影 |
| 54 | effect = QGraphicsDropShadowEffect(self) |
| 55 | effect.setBlurRadius(12) |
| 56 | effect.setOffset(0, 0) |
| 57 | effect.setColor(Qt.gray) |
| 58 | self.setGraphicsEffect(effect) |
| 59 | |
| 60 | def initUi(self): |
| 61 | layout = QVBoxLayout(self) |
| 62 | # 重点: 这个widget作为背景和圆角 |
| 63 | self.widget = QWidget(self) |
| 64 | self.widget.setObjectName('Custom_Widget') |
| 65 | layout.addWidget(self.widget) |
| 66 | |
| 67 | # 在widget中添加ui |
| 68 | layout = QGridLayout(self.widget) |
| 69 | layout.addItem(QSpacerItem( |
| 70 | 40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum), 0, 0) |
| 71 | layout.addWidget(QPushButton( |
| 72 | 'r', self, clicked=self.accept, objectName='closeButton'), 0, 1) |
| 73 | layout.addItem(QSpacerItem(20, 40, QSizePolicy.Minimum, |
| 74 | QSizePolicy.Expanding), 1, 0) |
| 75 | |
| 76 | def sizeHint(self): |
| 77 | return QSize(600, 400) |
| 78 | |
| 79 | |
| 80 | if __name__ == '__main__': |