PYQT5 CSS SetSheetStyle嵌套写作

发布于 2025-02-13 01:48:50 字数 1724 浏览 0 评论 0原文

最近,我得到了一个请求,通过在pyqt5中使用CSS来实现悬停效果,我不知道如何编写嵌套写作,现在显示我的代码:

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QAction, QMenu
from PyQt5.QtGui import QPalette, QBrush, QPixmap


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()  

    def initUI(self):
        btn = QPushButton('button', self)

        button = QMenu()

        btn.setStyleSheet("QPushButton{color:black}"
                          "QPushButton:hover{color:red}"
                          "QPushButton{background-color:rgb(78,255,255)}"
                          "QPushButton{border:2px}"
                          "QPushButton{border-radius:10px}"
                          "QPushButton{padding:2px 4px}"
                          "QPushButton:hover{QMenu{display:block}}"
                          # "QMenu:!hover{display:block}"
                          # "#button:!hover{display:block}"
                          )

        # button.setStyleSheet("QMenu:!hover{display:None}")


        new_action = QAction("create", button)
      
        new_action.triggered.connect(lambda: print("file"))
        open_action = QAction("open", button)
        open_action.triggered.connect(lambda: print("open"))
        exit_action = QAction("quit", button)
        exit_action.triggered.connect(lambda: print("quit"))
        button.addAction(new_action)
        button.addAction(open_action)

        btn.setMenu(button)

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

“ qpushbutton:hover {qmenu {qmenu {display}}}}

这行没有效果,所以我想知道如何使这条线效果并获得正确的写作,谢谢!

recently I get a request that realize hover effect by using CSS in PyQt5, I dont know how to write nested writing, now present my code:

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QAction, QMenu
from PyQt5.QtGui import QPalette, QBrush, QPixmap


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()  

    def initUI(self):
        btn = QPushButton('button', self)

        button = QMenu()

        btn.setStyleSheet("QPushButton{color:black}"
                          "QPushButton:hover{color:red}"
                          "QPushButton{background-color:rgb(78,255,255)}"
                          "QPushButton{border:2px}"
                          "QPushButton{border-radius:10px}"
                          "QPushButton{padding:2px 4px}"
                          "QPushButton:hover{QMenu{display:block}}"
                          # "QMenu:!hover{display:block}"
                          # "#button:!hover{display:block}"
                          )

        # button.setStyleSheet("QMenu:!hover{display:None}")


        new_action = QAction("create", button)
      
        new_action.triggered.connect(lambda: print("file"))
        open_action = QAction("open", button)
        open_action.triggered.connect(lambda: print("open"))
        exit_action = QAction("quit", button)
        exit_action.triggered.connect(lambda: print("quit"))
        button.addAction(new_action)
        button.addAction(open_action)

        btn.setMenu(button)

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

"QPushButton:hover{QMenu{display:block}}"

This line not effect, so I wanna know how to make this line to effect and get the right writing, Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文