javascript - QML 动态创建工具提示

标签 javascript qml tooltip qtquick2 qtquickcontrols2

所以我有一个动态变化的饼图。我想当鼠标悬停在切片上时显示每个切片的值,但我不确定如何在触发 onHovered 时创建工具提示。我用的是

qt 5.9.1 & import QtQuick.Controls 2.2

更新:我添加了一些代码来解释如何创建切片。 这是代码:

function onUpdateValues(values){
     switch(values.type){
           case PIE_CHART: 
                createPieChart(values.data);
                break;
           ...
           default:
                console.debug("CHART TYPE ERROR");
                break;
            }
     }
}

function createPieChart(data){
    pieserieschart.clear();
    for (var prop in data) {
        var new_slice =  pieserieschart.append(prop, data[prop]);
        new_slice.tooltip = prop + ": " + data[prop]
        //I tried using hovered signal (and without), but it's not doing any difference
        new_slice.hovered.connect(function(state) { new_slice.tooltip.visible = state })
        //If I replace the above line by the next one, I can see the console.log info, but the tooltip is not enabled
        new_slice.hovered.connect(function(state) { sliceHovered(new_slice, state) })

    }
}

function sliceHovered(slice, value){
    slice.enabled = true
    console.log("Slice hovered: " + slice.tooltip + " " + value)
}

ChartView { /* Chart */
    id:chartView

    PieSeries {
       id: pieserieschart;
       size: 1;
       holeSize: 0.55;
       onClicked: sliceClicked(slice);
    }
}

我可以看到console.log,但看不到工具提示,并且应用程序输出没有显示任何错误,但未触发工具提示

最佳答案

相关文档:

示例:

ChartView {
    id: chartView

    PieSeries {
        onHovered: {
            if (state)
                chartView.ToolTip.show(slice.label + ":" + slice.value)
            else
                chartView.ToolTip.hide()
        }
    }
}

关于javascript - QML 动态创建工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46649080/

相关文章:

QtQuick QML 如何在悬停时突出显示 ListView 中的项目?

javascript - 如何将工具提示添加到表头

html - 自定义工具提示

jquery - 工具提示添加第二个样式

javascript - Google Chrome JavaScript 错误 - 无法调用 null 的方法 'join'

c++ - 如何将数据作为可变引用从 QML 传递到 C++

javascript - 使用django模板中Javascript变量的值来渲染模板上下文

qt - 调用 C++ 代码来响应 QML 按钮的最正式方法是什么?

java - 一次从数据库中获取所有问题还是一次获取一个问题?

javascript - Angular 计数文本区域中换行符的 2 个字符