PyQt自定义MessageBox

本文介绍了如何在PyQt中创建自定义的MessageBox,避免直接继承带来的窗口样式问题。通过布局管理和图标替换,实现了符合需求的弹窗效果,推荐使用iconfont网站获取自定义图标。
摘要由CSDN通过智能技术生成

本来想直接继承QMessageBox,但是继承之后窗口的大小、stylesheet什么的都不太好搞定,于是重新做了一个,参考:QT自定义messagebox弹窗,使用PyQt重写

布局
在这里插入图片描述
自动生成代码

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 165)
        Dialog.setStyleSheet("QDialog {\n"
"    background-color:white;\n"
"}\n"
"QPushButton {\n"
"    border:2px solid rgb(0, 0, 127);\n"
"    padding:5px;\n"
"    border-radius:15px;\n"
"    color:#000000;\n"
"    background-color:transparent;\n"
"    font-family: \'Microsoft YaHei Ui\';\n"
"    font-size: 9pt;\n"
"    font-weight: bold;\n"
"}\n"
"QPushButton:hover {\n"
"    color:#0078d7;\n"
"    background:rgb(255, 255, 255);\n"
"    border:2px solid #0078d7;\n"
"}\n"
"QPushButton:pressed {\n"
"    color:#000000;\n"
"    background:#B8C6D1;\n"
"}\n"
"")
        self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtWidgets.QSpacerItem(15, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.pbt_icon = QtWidgets.QPushButton(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pbt_icon.sizePolicy().hasHeightForWidth())
        self.pbt_icon.setSizePolicy(sizePolicy)
        self.pbt_icon.setMinimumSize(QtCore.QSize(68, 64))
        self.pbt_icon.setStyleSheet("background-color: transparent;\n"
"border:none;")
        self.pbt_icon.setText("")
        self.pbt_icon.setIconSize(QtCore.QSize(64, 64))
        self.pbt_icon.setFlat(True)
        self.pbt_icon.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值