QEvent::EnterWhatsThisMode
、QEvent::WhatsThisClicked
等。我使用主窗口中的事件过滤器实现了类似于你所寻找的内容。if(event->type() == QEvent::EnterWhatsThisMode)
qDebug() << "click";
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
,也是类似的情况:光标暂时显示为箭头,但当光标离开标题栏时,禁止光标又会回来。我计划将此作为一个单独的问题来询问... - eric基于Chernobyl的答案,以下是我在Python(PySide)中的实现:
def event(self, event):
if event.type() == QtCore.QEvent.EnterWhatsThisMode:
print "click"
return True
return QtGui.QDialog.event(self, event)
也就是说,当应用程序进入“WhatsThisMode”时,您需要重新实现event
。否则,将控制权传回给基类。
它几乎可以工作。唯一的问题是鼠标光标仍然变成了“Forbidden”形状。根据另一篇文章的建议,我通过添加以下内容解决了这个问题:
QtGui.QWhatsThis.leaveWhatsThisMode()