首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在QML中创建图表?

如何在QML中创建图表?
EN

Ask Ubuntu用户
提问于 2014-10-02 08:54:21
回答 2查看 7.5K关注 0票数 6

我想在我的应用程序中添加一个页面,它不仅有原始的数字,而且还具有显示数据的友好图表。

我是否可以使用本地组件或第三方插件在QML中创建这样的元素?

我正在寻找一种开源解决方案,理想情况下,它不仅适用于ubuntu触摸,而且也适用于桌面系统。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2014-10-02 08:54:21

您可以将QChart.js - QML绑定用于Charts.js (使用画布元素的简单HTML5图表javascript库)。

我对项目这里进行了分叉,以支持调整事件大小(供桌面使用)。我基本上需要重置画布上下文,以允许调整大小的事件正确地用更新的窗口大小重新绘制曲面(请参阅http://qt-project.org/forums/viewthread/37313)。

QML示例:

下面的片段创建了上面的饼图页面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import QtQuick 2.0
import QtQuick.Layouts 1.1
import Ubuntu.Components 0.1
import "."
import "QChart.js" as Charts

MainView {
    id: root
    width: units.gu(50)
    height: units.gu(80)

    PageStack {
        id: pageStack
        Component.onCompleted: push(page0)

        Page {
            id: page0
            title: i18n.tr("Test Results")

            ColumnLayout {
                spacing: units.gu(2)
                anchors.margins: units.gu(2);
                anchors.fill: parent

                Label {
                    fontSize: "x-large"
                    text: "Summary"
                }

                Chart {
                    id: chart_pie;
                    Layout.fillHeight: true
                    Layout.fillWidth: true
                    chartAnimated: true;
                    chartAnimationEasing: Easing.Linear;
                    chartAnimationDuration: 1000;
                    chartType: Charts.ChartType.PIE;
                    chartOptions: {"segmentStrokeColor": "#ECECEC"};
                    chartData: [
                        {value: 15, color: "#6AA84F"},
                        {value:  3, color: "#DC3912"},
                        {value:  5, color: "#FF9900"}];
                }

                Column {
                    id: legend
                    Row {
                        spacing: units.gu(1)
                        Text {
                            text: "█"
                            color:"#6AA84F"
                        }
                        Text {
                            text: "15 tests passed"
                        }
                    }
                    Row {
                        spacing: units.gu(1)
                        Text {
                            text: "█"
                            color:"#DC3912"
                        }
                        Text {
                            text: "3 tests failed"
                        }
                    }
                    Row {
                        spacing: units.gu(1)
                        Text {
                            text: "█"
                            color:"#FF9900"
                        }
                        Text {
                            text: "5 tests skipped"
                        }
                    }
                }

                Button {
                    id: button
                    Layout.fillWidth: true
                    color: "#009E0F";
                    text: "Save detailed report";
                    font.bold: true;
                    onClicked: {
                        button.color = "#009E0F"
                        chart_pie.repaint();
                    }
                }
            }
        }
    }
}
票数 13
EN

Ask Ubuntu用户

发布于 2020-02-25 07:28:26

另一个解决方案是使用我们的绑定,这非常类似西尔万的建议。适用于Chart.js 2..。这并不完美,但也可能对你有帮助:https://github.com/Elypson/ChartJs2QML

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/531472

复制
相关文章
java——调用方法交换两个数的值
而利用Java的调用方法来交换两个数字的值,没有那么直接,我们需要用到数组这个引用类型,才能在方法中实现两个数字的交换。
小雨的分享社区
2022/10/26
8210
java——调用方法交换两个数的值
交换两个数的值的方法(三种)
采用中间变量C,来承接a的值,再将a的值设置为b,最后将中间变脸c的值设置到b中。
ha_lydms
2023/08/09
1740
Python判断两个单词的相似度
本文要点在于算法的设计:如果两个单词中不相同的字母足够少,并且随机选择几个字母在两个单词中具有相同的前后顺序,则认为两个单词是等价的。 目前存在的问题:可能会有误判。 from random import sample, randint def oneInAnother(one, another): '''用来测试单词one中有多少字母不属于单词another''' return sum((1 for ch in one if ch not in another)) def testPositions(
Python小屋屋主
2018/04/16
1.6K0
jQuery.html()方法ie下不能设置html代码的问题
jQuery一般来说还是很好用的,但有时候它也会有些问题的,比如jQuery的html()方法设置html代码,在一种情况下,ie6、ie7、ie8 下是不能设置html代码的。本文说的问题只针对ie8(包括ie8)以下的浏览器。   1.什么情况下IE6、IE7、IE8 jQuery.html("xxx")方法会设置不上html代码?   答:当被加载的的html代码里面出现以下情况,ie8(包括ie8)以下是设置不上html代码的:     a) 被设置的html代码中包含引用其他js的,如:<scr
磊哥
2018/05/08
1.9K0
多种方法快速交换两个变量的值
# 使用多种方法快速交换两个变量的值 1、利用元组的快速交换变量值 2、引入新的变量来交换 3、使用加减法交换变量值 4、利用元组从一个函数中返回两个不同的值 # 代码 # 1. 利用元组的快速交换变量值 a = 5 b = 8 a, b = b, a print(a, b) # 2. 引入新的变量来交换 c = b b = a a = c print(a, b) # 3. 使用加减法交换变量值 a = a + b b = a - b a = a - b print(a, b) # 4. 利用元组
benym
2022/07/14
5620
Java List的get方法
List的get方法是Java的集合框架中常用的一个方法,用于获取List集合中指定位置的元素。
很酷的站长
2023/10/20
6050
Java List的get方法
php 中file_get_contents超时问题的解决方法
最近开发遇到一个file_get_contents超时的问题,主要是因为访问腾讯服务器导致php脚本超时,下面我来总结file_get_contents超时问题的解决方法总结 1.创建一个可以控制的资源句柄,通过控制资源句柄超时来控制file_get_contents超时时间 $context = stream_context_create( array( 'http' => array( 'timeout' => 3000 //超时时间,单位为秒
joshua317
2018/04/16
2.7K0
【html】referrer值的设置小记
当html页面中引入跨域的资源时(image,js,css等),可在html的header中加上
一朵灼灼华
2022/08/05
5.8K0
找出两个文件中相同的单词(java实现)
第二种比较单词的方法:将string【】数组转换成集合,通过集合的retainAll()方法 两个集合取交集
崔笑颜
2020/08/24
1.7K0
Visual Studio 中两个窗体(WinForm)之间相互传值的方法
编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain
zls365
2021/04/23
2.3K0
Visual Studio 中两个窗体(WinForm)之间相互传值的方法
问题 1505: [蓝桥杯][算法提高VIP]单词个数统计
题目描述 编写一个程序,输入一个字符串(长度不超过80),然后统计出该字符串当中包含有多少个单词。例如:字符串“this is a book”当中包含有4个单词。
且陶陶
2023/04/12
4750
16.动态路由传值和get传值
1.动态路由传值  1.在components目录下新建vContent.vue组件 <template> <div> <h2>{{msg}}</h2> </div> </template> <script> export default { data () { return { msg:'详情组件', } }, methods:{ }, mounted(){ console.log(this
玩蛇的胖纸
2019/10/21
1.6K0
go get超时的网络问题
可以肯定是网络的问题,但是排查网络ping都是ok的,也能越“墙”;go env的设置也是ok的:
DifficultWork
2021/02/19
1.8K0
Visual Studio 中两个窗体(WinForm)之间相互传值的方法
编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain
用户9127601
2021/11/01
1.8K0
get和post方法的区别
在form表单提交数据的过程中,method属性提供了两个值:get,post,默认为get方式[参1]
Hongten
2018/09/13
1.6K0
GET、POST编码问题
GET请求、POST经常会出现中文乱码的问题,最好约定前后端的编码,一般为UTF-8。但是这里面也是有坑的。 后端设置编码为UTF-8的推荐方式: SpringMVC配置过滤器: <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <ini
欠扁的小篮子
2018/07/04
6840
英文单词排序方法
List<String> words = new ArrayList<String>(); words.add("China"); words.add("Americal"); words.add("lafei"); words.add("lundom"); Collections.sort(words,new Comparator<String>() { public int compare(String o1, String o2) {
斯文的程序
2019/11/07
9550
点击加载更多

相似问题

获取用ajax AsyncFileUpload保存的文件的新文件名?

21

文件上传控件和Ajax AsyncFileUpload控件

20

Ajax控制工具包AsyncFileUpload文件上传控制

32

Ajax AsyncFileUpload.FileBytes返回null

35

本地化AsyncFileUpload(Ajax ControlToolkit)

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文