我遇到了一个让我发疯的问题。我想让 QMenuBar 仅在鼠标悬停时可见,否则它应该被隐藏。
到目前为止,我得到了这个“工作”:
class Hidden_Menubar(QtGui.QMenuBar):
def __init__(self, parent=None):
super(Hidden_Menubar, self).__init__(parent)
self.setMouseTracking(True)
def enterEvent(self,event):
self.show()
def leaveEvent(self,event):
self.hide()
和
class Ui_Template_FullScreen(object):
def setupUi(self, Template_FullScreen):
Template_FullScreen.setObjectName(_fromUtf8("Template_FullScreen"))
Template_FullScreen.showFullScreen()
self.centralwidget = QtGui.QWidget(Template_FullScreen)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
Template_FullScreen.setCentralWidget(self.centralwidget)
self.menubar = Hidden_Menubar(Template_FullScreen)
......
问题是,一旦鼠标停止悬停在 QMenuBar 上,它就会消失(到目前为止还不错),但是如果我再次悬停 QMenuBar 区域,它将不可见!我猜 mouseMoveEvent 不会在隐藏对象上触发,还是其他问题?我尝试了很多解决方案,例如安装事件过滤器,但是我无法正确实现它。我对python和QT完全陌生,所以我自己搞不清楚。我感谢每一个帮助。
提前感谢=)
test.py:http://pastebin.com/hmRvYVup (完整代码)
编辑:谢谢大家非常有帮助的答案!不幸的是,我无法为您的帖子投票,因为我缺少声誉:/