如何在标签 PyQT5 上创建悬停效果

How to create hover over effect on a label PyQT5

我正在努力寻找有关如何在我的标签上创建悬停效果的信息。我一直试图让它首先在一个简单的版本上运行,但我很难找到任何关于如何制作悬停效果的教程或信息。

from PyQt5.QtWidgets import QApplication, QMainWindow, QFormLayout, QLabel
import sys 
from PyQt5 import QtCore, QtGui, QtWidgets


class window(object):
  def __init__(self):
    MainWindow.setObjectName("MainWindow")
    MainWindow.setGeometry(0,0,700, 600)

    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    MainWindow.setCentralWidget(self.centralwidget)

    self.label = QtWidgets.QLabel(self.centralwidget)
    self.label.setText("Hover Test Label")
    self.label.setGeometry(QtCore.QRect(100, 200, 169, 30))
    self.label.setStyleSheet("border-style:solid; color: black; border-width: 1px;")
    self.label.setObjectName("labeltest")        


if __name__ == "__main__":
  import sys
  app = QtWidgets.QApplication(sys.argv)
  MainWindow = QtWidgets.QMainWindow()
  ui = window()
  MainWindow.show()
  sys.exit(app.exec_())

如何创建 Label 背景颜色改变的悬停效果。

您可以在标签的样式-sheet中指定pseudo-states来区分普通标签和鼠标悬停在其上的标签。在您的示例中,您可以执行类似

class window(object):
    def __init__(self):
        ....
        self.label.setStyleSheet("""QLabel{border-style:solid; color: black; border-width: 1px;}
QLabel:hover{background-color:red}""")
        ....

Qt的官方文档也有一个页面比较详细style sheet examples