博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言使用go-sciter创建桌面应用(一) 简单的通过html,css写ui
阅读量:7015 次
发布时间:2019-06-28

本文共 2786 字,大约阅读时间需要 9 分钟。

我们使用go-sciter,就不得不提Sciter,Sciter 是一个嵌入式的 HTML/CSS/脚本引擎,旨在为桌面应用创建一个 UI 框架层。

说简单点就是我们通过它可以像写html,css那样写桌面UI。

 

一、环境准备

第一步:从https://sciter.com/download/地址下载sciter-sdk

解压,找到sciter-sdk\bin\64\sciter.dll复制到c:\windows\system32

注意上面的请根据你自已的系统选择相应文件

第二步:由于使用到cgo,所以window下需要安装mingw或tdm-gcc(建议安装tdm-gcc)
下载地址:

https://sourceforge.net/projects/mingw/files/

下载地址:

http://tdm-gcc.tdragon.net/download

下载:mingw-get-setup.exe或tdm64-gcc-5.1.0-2.exe

安装,然后把mingw\bin或tdm-gcc\bin加入到环境变量中

第三步:cmd进入gopath目录并运行

go get -x github.com/sciter-sdk/go-sciter

  

二、通过html,css编写简单UI

demo1.go代码如下:

package mainimport (	"github.com/sciter-sdk/go-sciter"	"github.com/sciter-sdk/go-sciter/window"	"log")func main() {	//创建window窗口	//参数一表示创建窗口的样式	//SW_TITLEBAR 顶层窗口,有标题栏	//SW_RESIZEABLE 可调整大小	//SW_CONTROLS 有最小/最大按钮	//SW_MAIN 应用程序主窗口,关闭后其他所有窗口也会关闭	//SW_ENABLE_DEBUG 可以调试	//参数二表示创建窗口的矩形	w, err := window.New(sciter.SW_TITLEBAR|		sciter.SW_RESIZEABLE|		sciter.SW_CONTROLS|		sciter.SW_MAIN|		sciter.SW_ENABLE_DEBUG,		nil);	if err != nil {		log.Fatal(err);	}	//加载文件	w.LoadFile("demo1.html");	//设置标题	w.SetTitle("你好,世界");	//显示窗口	w.Show();	//运行窗口,进入消息循环	w.Run();}

demo1.html代码如下:

    
你好,世界

如果出现乱码请把demo1.html文件转成gb2312并加上<meta charset="gb2312">或者转成UTF-8+BOM(注意是加BOM,加BOM,加BOM)。

 

三、写个表单的UI

demo2.go代码如下:

package mainimport (	"github.com/sciter-sdk/go-sciter"	"github.com/sciter-sdk/go-sciter/window"	"log")func main() {	//创建window窗口	//参数一表示创建窗口的样式	//SW_TITLEBAR 顶层窗口,有标题栏	//SW_RESIZEABLE 可调整大小	//SW_CONTROLS 有最小/最大按钮	//SW_MAIN 应用程序主窗口,关闭后其他所有窗口也会关闭	//SW_ENABLE_DEBUG 可以调试	//参数二表示创建窗口的矩形	w, err := window.New(sciter.SW_TITLEBAR|		sciter.SW_RESIZEABLE|		sciter.SW_CONTROLS|		sciter.SW_MAIN|		sciter.SW_ENABLE_DEBUG,		//给窗口设置个大小		&sciter.Rect{Left: 0, Top: 0, Right: 500, Bottom: 500});	if err != nil {		log.Fatal(err);	}	//加载文件	w.LoadFile("demo2.html");	//设置标题	w.SetTitle("表单");	//显示窗口	w.Show();	//运行窗口,进入消息循环	w.Run();}

demo2.html代码如下:

    
表单
用户:
密码:
性别:
爱好: 看书 打球 旅游
简介:

是不是感觉很方便,我个人觉得未来这种方式写UI会成为主流,传统的过于繁琐和麻烦了。

 

关于一些问题的说明

1、w.LoadFile() 无法加载相对路径的文件,请确保你运行程序的目录是否正确。

比如新版本的GoLand,在你右键Run时,程序所指向的目录是你New Project时设置Location的目录,而不是此时go脚本所在的目录。

转载于:https://www.cnblogs.com/jkko123/p/7045421.html

你可能感兴趣的文章
以前常用的攻击软件源代码
查看>>
MVC3 上传文件
查看>>
一个很easy的脚本--php获取服务器端的相关信息
查看>>
leetcode 【 Set Matrix Zeroes 】python 实现
查看>>
cocos2d的常用动作及效果总结之一: Basic actions
查看>>
Cocos2d API 解析之Texture2d
查看>>
【object-c基础】Object-c基础之五:在项目开发中Xcode的常用功能
查看>>
work6的code和问题
查看>>
初识Java
查看>>
css简单学习属性2---背景图片
查看>>
python进阶1--数据库支持
查看>>
Ubuntu server12.04 eth0网卡启动
查看>>
as CPU 优化【转】
查看>>
人月神话阅读笔记之一
查看>>
IIS发布的网站,内网和外网不能访问的解决办法
查看>>
闰年判断
查看>>
脑网络基础
查看>>
mysql5.6中 order by 多个字段排序问题
查看>>
C#读取Excel表格
查看>>
unix编程——posix消息队列
查看>>