想做一个跨windows和mac的gui程序

novodexx
退而结网 06月15日 字数 495

基本要求是:一个canvas,绘制鼠标轨迹,然后把轨迹上传(通过第三方库),在另一台电脑上重绘。

最终要求最好是发布版越小越好,比如1M就搞定,那是最好。对最终用户没有什么心理负担。

用什么比较好呢?

想选c++,主要是速度快,延迟越小越好,选型优点纠结,

QT,商业版费用我不太愿意出,open source版不支持静态链接,意味着要安装。

另外QT据说做出来的东西比较大,啥功能没有的估计也得要10M?

.net core也需要额外安装。

各种js,web的版本不太想用,因为可能要搭建web服务器,另外性能会成问题。

还有什么方案,速度快,二进制包小?

1 个Like
104 个回复
allegro
静水流深 06月15日

fltk 我最爱用这个。

novodexx
退而结网 06月15日

你有作品吗? 能否欣赏一下?

【 在 allegro 的大作中提到: 】

: fltk 我最爱用这个。

milksea
肥了,又肥了 >>>_<<< 06月15日

发布越小越好那就都用系统控件,界面每个操作系统各写一份。

【 在 novodexx 的大作中提到: 】

: 基本要求是:一个canvas,绘制鼠标轨迹,然后把轨迹上传(通过第三方库),在另一台电脑上重绘。

: 最终要求最好是发布版越小越好,比如1M就搞定,那是最好。对最终用户没有什么心理负担。

: ...................

novodexx
退而结网 06月15日

fltk也是LGPL协议,也是没有静态链接选项的。

【 在 allegro 的大作中提到: 】

: fltk 我最爱用这个。

novodexx
退而结网 06月15日

Windows上用什么?直接Windows编程?

【 在 milksea 的大作中提到: 】

: 发布越小越好那就都用系统控件,界面每个操作系统各写一份。

milksea
肥了,又肥了 >>>_<<< 06月15日

是啊。windows api,或者wtl,都是确保二进制分发小的办法

【 在 novodexx 的大作中提到: 】

: Windows上用什么?直接Windows编程?

: 【 在 milksea 的大作中提到: 】

: : 发布越小越好那就都用系统控件,界面每个操作系统各写一份。

: ...................

allegro
静水流深 06月15日

https://github.com/etorth/mir2x

最后一幅图的gui就是用fltk写的。tool目录下有很多也是fltk写的。

非常简单明白快。还有个fluid可以所见即所得的设计gui。

【 在 novodexx 的大作中提到: 】

: 你有作品吗? 能否欣赏一下?

allegro
静水流深 06月15日
milksea
肥了,又肥了 >>>_<<< 06月15日

不过我觉得这个年代了二进制分发是1M还是50M大部分用户都不太敏感吧。

【 在 novodexx 的大作中提到: 】

: Windows上用什么?直接Windows编程?

: 【 在 milksea 的大作中提到: 】

: : 发布越小越好那就都用系统控件,界面每个操作系统各写一份。

: ...................

novodexx
退而结网 06月15日

对程序员不敏感,但是一般用户还是很敏感滴,我就碰到过。

【 在 milksea 的大作中提到: 】

: 不过我觉得这个年代了二进制分发是1M还是50M大部分用户都不太敏感吧。

hgoldfish
老鱼 06月15日

一般用户会敏感用 1m 还是 10m?不太相信啊。qt 程序压缩后 3.3m,一般人估计不会太介意。

对容量敏感可以看上次 progamming 版本有个 gui 总结贴。

http://www.newsmth.net/nForum/article/Programming/181902?s=181902

【 在 novodexx (退而结网) 的大作中提到: 】

: 对程序员不敏感,但是一般用户还是很敏感滴,我就碰到过。

novodexx
退而结网 06月15日

牛,你这个有点意思,发布包能做成一个单个的exe吗?

【 在 allegro 的大作中提到: 】

https://github.com/etorth/mir2x

: 最后一幅图的gui就是用fltk写的。tool目录下有很多也是fltk写的。

: 非常简单明白快。还有个fluid可以所见即所得的设计gui。

: ...................

allegro
静水流深 06月15日

这是我闲暇时候学习c++新特性用的repo。

公司代码不能乱用新特性。

我写这个没有版权考虑的,可以做成单个binary。

但你如果版权限制太多我就不确定了,貌似fltk的确不能静态链接。

【 在 novodexx 的大作中提到: 】

: 牛,你这个有点意思,发布包能做成一个单个的exe吗?

novodexx
退而结网 06月15日

一个二进制文件做得极端小,在产品上也是个卖点。

而且qt开源版不支持静态链接也是个问题。

【 在 hgoldfish 的大作中提到: 】

: 一般用户会敏感用 1m 还是 10m?不太相信啊。qt 程序压缩后 3.3m,一般人估计不会太介意。

: 对容量敏感可以看上次 progamming 版本有个 gui 总结贴。

http://www.newsmth.net/nForum/article/Programming/181902?s=181902

: ...................

milksea
肥了,又肥了 >>>_<<< 06月15日

发布版小当然感觉不错,不过开发精力也大。我打个比方啊,上传肯定用到网络,现在大量用web,如果是http,那就要http库,通常还要https,那还要ssl库。那么为了支持https上传,体积小也要用个curl这种库,链接上openssl就别想2MB以内搞定了,用winssl还能稍小点。但其实如果用.net就是几行代码的事,windows平台你还可以认为.net是预装的。

【 在 novodexx 的大作中提到: 】

: 基本要求是:一个canvas,绘制鼠标轨迹,然后把轨迹上传(通过第三方库),在另一台电脑上重绘。

: 最终要求最好是发布版越小越好,比如1M就搞定,那是最好。对最终用户没有什么心理负担。

: ...................

novodexx
退而结网 06月15日

wtl比较有意思,这个东西比windows api level高吧,开发来说,那个更好?比如说文档齐全,用户多?

【 在 milksea 的大作中提到: 】

: 是啊。windows api,或者wtl,都是确保二进制分发小的办法

milksea
肥了,又肥了 >>>_<<< 06月15日

我不会用wtl,没用过。印象里这东西和mfc一样就是把windows api简单包装下吧。小是真的小。

【 在 novodexx 的大作中提到: 】

: wtl比较有意思,这个东西比windows api level高吧,开发来说,那个更好?比如说文档齐全,用户多?

: 【 在 milksea 的大作中提到: 】

: ...................

novodexx
退而结网 06月15日

是的, 你讲的这些确实有道理,我也在寻找上传的第三方库,尽可能小。

我目前另一个东西用的是.net, 开发确实快,不过还是有比较大的问题的,比如安装包问题就够喝一壶的。

【 在 milksea 的大作中提到: 】

: 发布版小当然感觉不错,不过开发精力也大。我打个比方啊,上传肯定用到网络,现在大量用web,如果是http,那就要http库,通常还要https,那还要ssl库。那么为了支持https上传,体积小也要用个curl这种库,链接上openssl就别想2MB以内搞定了,用winssl还能稍小点。但其实如果用.net就是几行代码的事,windows平台你还可以认为.net是预装的。

allegro
静水流深 06月15日

话说回来,我看你的功能要求也不复杂。

像是某个东西的独立的一环,你把你做的这个小工具开源不就得了。

反正GPL下的程序输入产出又不传染。

只要不link到你的主程序库中。

【 在 novodexx 的大作中提到: 】

: 牛,你这个有点意思,发布包能做成一个单个的exe吗?