GuiLite 2.0 发布:Golang 的 GUI 外衣

idea4good
 idea4good
发布于 2019年03月14日
收藏 21

简介

Golang作为新生的高级语言,因为其独特的优势,迅速获得了开发者的支持,作者本身也对Golang简洁,优美的语言特性,分外喜欢。
不过遗憾的是:没有很多GUI与之搭配使用。为了响应广大开发者的期盼,我们为HostMonitor制作了Golang版本,用代码详细描述了如何用Golang调用GuiLite的C++代码。
简单的来说,Golang可以方便的调用C语言,但无法直接调用C++;所以,需要将C++接口函数,用extern "C"关键字封装成C函数即可。

代码位置:https://gitee.com/idea4good/GuiLiteSamples/tree/master/HostMonitor/BuildGo

 

编译步骤(也可以见HostMonitor下的readme文件)

1. Build UIcode:
        cd HostMonitor/UIcode
        If x64/raspberry pi:
            cmake .
            make
            cp libUIcode.a ../BuildGo/libs/amd64/
        If ARM32:
            cmake -D CMAKE_C_COMPILER="/usr/bin/arm-linux-gnueabi-gcc" -D CMAKE_CXX_COMPILER="/usr/bin/arm-linux-gnueabi-g++" .
        make
        cp libUIcode.a ../BuildGo/libs/arm/
2. Build Golang:
    cd HostMonitor/BuildGo
    go build -o HostMonitor

3. 在Linux上的运行方法:
    Run with framebuffer:
    sudo ./HostMonitor /dev/fb0    /dev/fb0: The path of framebuffer device file.
    Run inside QT APP(display-xxx is a QT APP for display, skip this if you haven't installed QT):
    If x64: sudo ./display-x64 1 1024 768 | ./HostMonitor shared-fb
    If ARM/Raspberry Pi: sudo ./display-arm 1 1024 768 | ./HostMonitor shared-fb

最后,遇到任何问题,都欢迎大家在开发群里面讨论,我们会尽力给大家提供帮助,谢谢!
 

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:GuiLite 2.0 发布:Golang 的 GUI 外衣
加载中

精彩评论

邪恶胖子
邪恶胖子
刻苦的作者啊
idea4good
idea4good

引用来自“Cheuker”的评论

😓 这个go版本就相当于 c++写好各个UI然后直接run一样,这样还不如不用cgo 直接cmd.Run()就好了😳。
是的,目前的思路是,C++编写好UI,Golang完成一些数据处理,通过cgo传递给UI。
当然,也可以考虑把GuiLite的接口进一步封装成go版本---如果确实有必要的话

最新评论(7

zedsmail
zedsmail

引用来自“Cheuker”的评论

😓 这个go版本就相当于 c++写好各个UI然后直接run一样,这样还不如不用cgo 直接cmd.Run()就好了😳。

引用来自“idea4good”的评论

是的,目前的思路是,C++编写好UI,Golang完成一些数据处理,通过cgo传递给UI。
当然,也可以考虑把GuiLite的接口进一步封装成go版本---如果确实有必要的话
有必要
东方星痕
东方星痕
cgo在win下开发贼麻烦
idea4good
idea4good

引用来自“云飞9731”的评论

不是好的解决方法,需要一个好的idea,直接编辑界面代码,就像freepascal的开源ide lazarus 一样
把所有的GuiLite C++代码,都转化为Go代码?
云飞9731
不是好的解决方法,需要一个好的idea,直接编辑界面代码,就像freepascal的开源ide lazarus 一样
邪恶胖子
邪恶胖子
刻苦的作者啊
idea4good
idea4good

引用来自“Cheuker”的评论

😓 这个go版本就相当于 c++写好各个UI然后直接run一样,这样还不如不用cgo 直接cmd.Run()就好了😳。
是的,目前的思路是,C++编写好UI,Golang完成一些数据处理,通过cgo传递给UI。
当然,也可以考虑把GuiLite的接口进一步封装成go版本---如果确实有必要的话
Cheuker
Cheuker
😓 这个go版本就相当于 c++写好各个UI然后直接run一样,这样还不如不用cgo 直接cmd.Run()就好了😳。
返回顶部
顶部