有必要当您将鼠标悬停在工具栏的元素上时,状态栏中的值不会改变。我试图拦截鼠标悬停事件,但状态栏中的行更改仍然发生。
from PyQt5 import QtWidgets, QtCore
import sys
class _FilterConstructor(QtCore.QObject):
def __init__(self, parent):
super().__init__(parent)
def eventFilter(self, obj, _event):
if _event.type() == QtCore.QEvent.Enter:
return True
else:
return QtCore.QObject.eventFilter(self, obj, _event)
class MyWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
menu = self.menuBar()
fileMenu = menu.addMenu('&File')
evFilt = _FilterConstructor(fileMenu)
fileMenu.installEventFilter(evFilt)
self.statusBar().showMessage("line which doesn't want to disappear")
if __name__ == '__main__':
app = QtWidgets.QApplication([''])
root = MyWindow()
root.show()
sys.exit(app.exec_())
对象有
QAction
一个特殊事件描述更新状态栏的动作:因此,过滤器构造函数代码将如下所示:
例如,您可以将小部件添加到状态栏并在那里显示文本