【问题标题】:QDialog: Forbidden Cursor appears when Question Mark (?) PressedQDialog:按下问号(?)时出现禁止光标
【发布时间】:2014-11-17 16:47:06
【问题描述】:

我正在尝试在基于 QDialog 的应用程序中使用“WhatsThis”功能,因此当用户单击标题栏中的小问号时,会出现一个小“关于”对话框。

默认情况下,单击该按钮只会将鼠标光标更改为“禁止”光标:

基于a previous post,我重新实现事件如下:

def event(self, event): 
    if event.type() == QtCore.QEvent.EnterWhatsThisMode:
        print "Here is a useful message"
        return True
    return QtGui.QDialog.event(self, event)

虽然这会打印出所需的消息,但我仍然会得到“禁止”光标,即使我将以下内容添加到上述事件函数中:

QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))

这会暂时创建一个箭头,但是当我将光标移到应用程序中标题栏之外的任何位置时,光标再次变为禁止。这几乎就像是在某个需要执行的地方打开了一个模态对话框。

我怎样才能阻止这种被禁止的行为?

【问题讨论】:

    标签: qt pyqt pyside


    【解决方案1】:

    在您的事件处理程序中插入对QWhatsThis.leaveWhatsThisMode() 的调用以退出“这是什么?”一进入就进入模式。

    def event(self, event): 
        if event.type() == QtCore.QEvent.EnterWhatsThisMode:
            QtGui.QWhatsThis.leaveWhatsThisMode()
            print "Here is a useful message"
            return True
        return QtGui.QDialog.event(self, event)
    

    【讨论】:

    • 谢谢。非常奇怪...感谢文档的链接...我以前从未见过该课程。 Qt 似乎具有分形结构。 :)
    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2014-03-27
    相关资源
    最近更新 更多