Golang+Qt合作 : go-echarts + QWebEngineView

2024-01-12 07:52

本文主要是介绍Golang+Qt合作 : go-echarts + QWebEngineView,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

无聊使用了一下go-echarts, 使用Qt在C/S模式下嵌入使用B/S框架的简单例子

材料

Qt 5.15.0 + MSVC-2019-64bit

Golang1.14.3 + go-echarts

代码

Golang (Server端)
浏览器 localhost:8081 可以进行访问, 示例来自于 https://go-echarts.github.io/go-echarts/docs/kline

package main
import ("github.com/go-echarts/go-echarts/charts""log""math/rand""net/http""os""time"
)var nameItems = []string{"衬衫", "牛仔裤", "运动裤", "袜子", "冲锋衣", "羊毛衫"}
var foodItems = []string{"面包", "牛奶", "奶茶", "棒棒糖", "加多宝", "可口可乐"}var seed = rand.NewSource(time.Now().UnixNano())
func randInt() []int {cnt := len(nameItems)r := make([]int, 0)for i := 0; i < cnt; i++ {r = append(r, int(seed.Int63())%50)}return r
}// 或者使用 net/http,同上,后面也不就列出
func handler(w http.ResponseWriter, _ *http.Request) {bar := charts.NewBar()bar.SetGlobalOptions(charts.TitleOpts{Title: "Bar-示例图"}, charts.ToolboxOpts{Show: true})bar.SetSeriesOptions(charts.LabelTextOpts{Show: false})bar.AddXAxis(nameItems).AddYAxis("商家A", randInt()).AddYAxis("商家B", randInt())f, err := os.Create("bar.html")if err != nil {log.Println(err)}bar.Render(w, f) // Render 可接收多个 io.writer 接口
}func main() {http.HandleFunc("/", handler)http.ListenAndServe(":8081", nil)
}

Qt (Browser端)

.pro

QT       += webenginewidgets
mainwindow.ui

拖一个LineEdit 做网址输入,Pushbutton刷新(或回车自动刷新), widget 提升为QWebEngineView

mainwindow.cpp

// 在(按键)刷新槽函数内加入下面三句
QUrl url = QUrl::fromUserInput(ui->edtUrl->text());
ui->webView->load(url);
ui->webView->setFocus();

效果展示

​​​​在这里插入图片描述

参考

go-echarts - https://go-echarts.github.io/go-echarts/docs/kline

这篇关于Golang+Qt合作 : go-echarts + QWebEngineView的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/597241

相关文章

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性