RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1411984
Accepted
Pahan
Pahan
Asked:2022-07-20 19:52:17 +0000 UTC2022-07-20 19:52:17 +0000 UTC 2022-07-20 19:52:17 +0000 UTC

按钮背景。当指向它时。没有按预期改变

  • 772

鼠标悬停时,背景只在按钮文字后面发生变化,但按钮本身的边框明显变大了。

为什么会发生这种情况,我还没有弄清楚。我想改变按钮的整个背景,就像第二张图片一样(但是,背景必须是纯色的)。

鼠标光标在屏幕截图中不可见,但不在文本上,而是在按钮本身内

在此处输入图像描述

以下是styleSheet按钮:

QPushButton{
    background: rgba(0, 0,0,0);
    margin: 20, 20, 0, 0
}

QPushButton:hover{
    background:rgba(0, 0, 0,30)
}

主文件

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1028, 892)
        MainWindow.setAutoFillBackground(False)
        MainWindow.setStyleSheet("QWidget{\n"
"    color: white;\n"
"    background: QLinearGradient(x1: 0, y1: 1, \n"
"                            x2: 1, y2: 0, \n"
"                            stop: 0   rgb(170, 85, 255), \n"
"                            stop: 0.5  rgb(117, 83, 255)\n"
"                            stop: 1 rgb(221, 24, 255));\n"
"}")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setContentsMargins(0, -1, -1, -1)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth())
        self.pushButton_5.setSizePolicy(sizePolicy)
        self.pushButton_5.setMinimumSize(QtCore.QSize(0, 0))
        self.pushButton_5.setBaseSize(QtCore.QSize(0, 0))
        self.pushButton_5.setFocusPolicy(QtCore.Qt.StrongFocus)
        self.pushButton_5.setLayoutDirection(QtCore.Qt.RightToLeft)
        self.pushButton_5.setStyleSheet("QPushButton{\n"
"    background: rgba(0,0,0,0);\n"
"    margin: 20,20,0,0\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background:rgba(0,0,0,30)\n"
"}")
        self.pushButton_5.setObjectName("pushButton_5")
        self.verticalLayout.addWidget(self.pushButton_5)
        self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth())
        self.pushButton_6.setSizePolicy(sizePolicy)
        self.pushButton_6.setStyleSheet("QPushButton{\n"
"    background: rgba(0, 0,0,0);\n"
"    margin: 20, 20, 0, 0\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background:rgba(0, 0, 0,30)\n"
"}")
        self.pushButton_6.setObjectName("pushButton_6")
        self.verticalLayout.addWidget(self.pushButton_6)
        self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton_8.sizePolicy().hasHeightForWidth())
        self.pushButton_8.setSizePolicy(sizePolicy)
        self.pushButton_8.setStyleSheet("QPushButton{\n"
"    background: rgba(0, 0,0,0);\n"
"    margin: 20, 20, 0, 0\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background:rgba(0, 0, 0,30)\n"
"}")
        self.pushButton_8.setObjectName("pushButton_8")
        self.verticalLayout.addWidget(self.pushButton_8)
        self.pushButton_9 = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton_9.sizePolicy().hasHeightForWidth())
        self.pushButton_9.setSizePolicy(sizePolicy)
        self.pushButton_9.setStyleSheet("QPushButton{\n"
"    background: rgba(0, 0,0,0);\n"
"    margin: 20, 20, 0, 0\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background:rgba(0, 0, 0,30)\n"
"}")
        self.pushButton_9.setObjectName("pushButton_9")
        self.verticalLayout.addWidget(self.pushButton_9)
        self.frame_2 = QtWidgets.QFrame(self.centralwidget)
        self.frame_2.setStyleSheet("QFrame{\n"
"    background: rgba(0,0,0,0)\n"
"}")
        self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.verticalLayout.addWidget(self.frame_2)
        self.horizontalLayout.addLayout(self.verticalLayout)
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setStyleSheet("QFrame{\n"
"    background: rgba(0,0,0,0)\n"
"}")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout.addWidget(self.frame)
        self.horizontalLayout.setStretch(0, 1)
        self.horizontalLayout.setStretch(1, 3)
        self.verticalLayout_3.addLayout(self.horizontalLayout)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Адская дрочильня"))
        self.pushButton_5.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_6.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_8.setText(_translate("MainWindow", "PushButton"))
        self.pushButton_9.setText(_translate("MainWindow", "PushButton"))

python pyqt
  • 1 1 个回答
  • 67 Views

1 个回答

  • Voted
  1. Best Answer
    S. Nick
    2022-07-22T02:23:56Z2022-07-22T02:23:56Z

    在一个地方定义样式对我来说更方便,所以我setStyleSheet从表单中删除了所有内容并将样式添加到StyleSheet = """ ... """.

    并像这样添加它们:

    app.setStyleSheet(StyleSheet)
    

    主文件

    import sys
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.Qt import *
    
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(1028, 892)
            MainWindow.setAutoFillBackground(False)
            '''
    # или так ----------------------->v <---- точку видите                   !!! +++
            MainWindow.setStyleSheet(".QWidget{\n"
    "    color: white;\n"
    "    background: QLinearGradient(x1: 0, y1: 1, \n"
    "                            x2: 1, y2: 0, \n"
    "                            stop: 0   rgb(170, 85, 255), \n"
    "                            stop: 0.5  rgb(117, 83, 255)\n"
    "                            stop: 1 rgb(221, 24, 255));\n"
    "}")
            '''
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.centralwidget)
            self.verticalLayout_3.setObjectName("verticalLayout_3")
            self.horizontalLayout = QtWidgets.QHBoxLayout()
            self.horizontalLayout.setContentsMargins(0, -1, -1, -1)
            self.horizontalLayout.setSpacing(0)
            self.horizontalLayout.setObjectName("horizontalLayout")
            self.verticalLayout = QtWidgets.QVBoxLayout()
            self.verticalLayout.setObjectName("verticalLayout")
            self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
            sizePolicy.setHorizontalStretch(0)
            sizePolicy.setVerticalStretch(0)
            sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth())
            self.pushButton_5.setSizePolicy(sizePolicy)
            self.pushButton_5.setMinimumSize(QtCore.QSize(0, 0))
            self.pushButton_5.setBaseSize(QtCore.QSize(0, 0))
            self.pushButton_5.setFocusPolicy(QtCore.Qt.StrongFocus)
            self.pushButton_5.setLayoutDirection(QtCore.Qt.RightToLeft)
            
            '''
            self.pushButton_5.setStyleSheet("QPushButton{\n"
    "    background: rgba(0,0,0,0);\n"
    "    margin: 20,20,0,0\n"
    "}\n"
    "\n"
    "QPushButton:hover{\n"
    "    background:rgba(0,0,0,30)\n"
    "}")
            '''
            self.pushButton_5.setObjectName("pushButton_5")
            self.verticalLayout.addWidget(self.pushButton_5)
            self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
            sizePolicy.setHorizontalStretch(0)
            sizePolicy.setVerticalStretch(0)
            sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth())
            self.pushButton_6.setSizePolicy(sizePolicy)
            '''
            self.pushButton_6.setStyleSheet("QPushButton{\n"
    "    background: rgba(0, 0,0,0);\n"
    "    margin: 20, 20, 0, 0\n"
    "}\n"
    "\n"
    "QPushButton:hover{\n"
    "    background:rgba(0, 0, 0,30)\n"
    "}")
            '''
            self.pushButton_6.setObjectName("pushButton_6")
            self.verticalLayout.addWidget(self.pushButton_6)
            self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget)
            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
            sizePolicy.setHorizontalStretch(0)
            sizePolicy.setVerticalStretch(0)
            sizePolicy.setHeightForWidth(self.pushButton_8.sizePolicy().hasHeightForWidth())
            self.pushButton_8.setSizePolicy(sizePolicy)
            '''
            self.pushButton_8.setStyleSheet("QPushButton{\n"
    "    background: rgba(0, 0,0,0);\n"
    "    margin: 20, 20, 0, 0\n"
    "}\n"
    "\n"
    "QPushButton:hover{\n"
    "    background:rgba(0, 0, 0,30)\n"
    "}")
            '''
            self.pushButton_8.setObjectName("pushButton_8")
            self.verticalLayout.addWidget(self.pushButton_8)
            self.pushButton_9 = QtWidgets.QPushButton(self.centralwidget)
            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
            sizePolicy.setHorizontalStretch(0)
            sizePolicy.setVerticalStretch(0)
            sizePolicy.setHeightForWidth(self.pushButton_9.sizePolicy().hasHeightForWidth())
            self.pushButton_9.setSizePolicy(sizePolicy)
            '''
            self.pushButton_9.setStyleSheet("QPushButton{\n"
    "    background: rgba(0, 0,0,0);\n"
    "    margin: 20, 20, 0, 0\n"
    "}\n"
    "\n"
    "QPushButton:hover{\n"
    "    background:rgba(0, 0, 0,30)\n"
    "}")
            '''
            self.pushButton_9.setObjectName("pushButton_9")
            self.verticalLayout.addWidget(self.pushButton_9)
            
            self.frame_2 = QtWidgets.QFrame(self.centralwidget)
            '''
            self.frame_2.setStyleSheet("QFrame{\n"
    "    background: rgba(0,0,0,0)\n"
    "}")
            '''
            self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
            self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
            self.frame_2.setObjectName("frame_2")
            self.verticalLayout.addWidget(self.frame_2)
            self.horizontalLayout.addLayout(self.verticalLayout)
            self.frame = QtWidgets.QFrame(self.centralwidget)
            '''
            self.frame.setStyleSheet("QFrame{\n"
    "    background: rgba(0,0,0,0)\n"
    "}")
            '''
            self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
            self.frame.setObjectName("frame")
            self.horizontalLayout.addWidget(self.frame)
            self.horizontalLayout.setStretch(0, 1)
            self.horizontalLayout.setStretch(1, 3)
            self.verticalLayout_3.addLayout(self.horizontalLayout)
            MainWindow.setCentralWidget(self.centralwidget)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "Адская дрочильня"))
            self.pushButton_5.setText(_translate("MainWindow", "PushButton 1"))
            self.pushButton_6.setText(_translate("MainWindow", "PushButton 2"))
            self.pushButton_8.setText(_translate("MainWindow", "PushButton 3"))
            self.pushButton_9.setText(_translate("MainWindow", "PushButton 4"))
    
    
    StyleSheet = '''
    
    #MainWindow {                                               /* <---- #MainWindow !!! */
        color: white;
        background: QLinearGradient(x1: 0, y1: 1, 
                                x2: 1, y2: 0, 
                                stop: 0   rgb(170, 85, 255), 
                                stop: 0.5  rgb(117, 83, 255)
                                stop: 1 rgb(221, 24, 255));
    }
    
    
    QFrame {
        background: rgba(0, 0, 0, 0);
    }
    /*  vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv попробуйте раскомментировать шесть строк ниже
    #frame {
        background: rgba(0, 220, 0, 150);
    }
    #frame_2 {
        background: rgba(220, 0, 0, 150);
    }
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
    
    QPushButton {
        background: rgba(0, 0, 0, 0);
        margin: 20px, 20px, 0px, 0px;
    }
    
    QPushButton:hover {
        background: rgba(0, 0, 0, 30);
        margin: 0px, 0px, 0px, 0px;                             /* <---- !!! +++ */
        color: white;                                           /* <---- !!! +++ */
    }
    '''
    
    
    class MainWindow(QtWidgets. QMainWindow, Ui_MainWindow):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        app.setStyleSheet(StyleSheet)
        w = MainWindow()
        w.show()
        sys.exit(app.exec_())
    

    在此处输入图像描述

    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5