鼠标悬停事件在 TableView 的标题中不起作用

Posted

技术标签:

【中文标题】鼠标悬停事件在 TableView 的标题中不起作用【英文标题】:Mouse hover events not working in the header of the TableView 【发布时间】:2019-06-21 06:56:13 【问题描述】:

这里有类似的问题

How to get Clicked or Pressed event on QML TableView header?

我想在悬停时突出显示标题。但是headerDelegate 中的行为很奇怪。

headerDelegate: Rectangle 
    height:30
    MouseArea
        hoverEnabled: true
        anchors.fill: parent

        onPressed: 
            console.debug("This will not be printed")
        

        onEntered: 
            console.debug("Will print on pressed event")
        

        onExited: 
            console.debug("Will print on released event")
        
    

悬停不会触发任何事件。

【问题讨论】:

本题不需要C++标签 【参考方案1】:

悬停和其他状态由标头委托中的styleData 组件处理。

如果您想知道悬停何时发生变化,请将styleData 的不同信号(onPressedonContainsMouseChanged 等)连接到一个函数。

例如:

headerDelegate: Rectangle 
        height:30
        color: "red"
        Connections 
            target: styleData
            onPressedChanged: 
                console.debug("PRESSED:  "+ styleData.column + " " + styleData.pressed)
            

            onContainsMouseChanged: 
                if (styleData.containsMouse)
                    console.debug("The mouse is hover the header of column " + styleData.column)
                else
                    console.debug("The mouse is leaving the header of column " + styleData.column)
            
        
    

【讨论】:

谢谢。它在headerDelegate 中运行良好。我也想在rowDelegate 中使用这种方法。但是onContainsMouseChangedrowDelegate 内部不起作用 这里讨论了在rowDelegate 中管理事件。 ***.com/questions/56684357/…不知能不能用Connections的方法

以上是关于鼠标悬停事件在 TableView 的标题中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将鼠标悬停在带有显示的下拉菜单上:表格在 IE 中不起作用

鼠标悬停的背景移动的工作 Jsfiddle 示例在实际项目环境(Django)中不起作用?

数据提示(在调试模式下将鼠标悬停在变量上)在 Visual Studio 2012 / Win 7 64bit 中不起作用

按钮悬停图像在 CSS 中不起作用

悬停在 Internet Explorer 中不起作用

:悬停在按钮的跨度上在 IE 中不起作用