linux 开发大型c 项目,如何为大型跨平台C项目编写GUI?

GUI应该与应用程序的逻辑分开?

当然是….

>如果是分开的,逻辑和GUI如何沟通? TCP / IP套接字是一个很好的选择吗?还有什么其他的可能性?

…但不是那么多。套接字将是过度的(例外:见问题5)。通常你会在GUI和后端部分中分类。然后GUI类调用后端的方法。

使用不同于C语言的GUI是个好主意?如果是 – 哪种语言?

如果是这样,你必须整合这两种语言,所以我建议用相同的语言写出所有内容。但是为了回答你的问题,你可以为后台创建Python绑定,并用Python编写GUI(使用PyGTK,PyQT或wxWidgets)。

>使用基于浏览器的GUI是个好主意?

这取决于您如何部署应用程序。如果应该安装在每台客户端计算机上,那么Web界面就没有意义。如果要集中托管,那么您可以选择一个Web界面。

>即使项目的核心逻辑是跨平台的,我可以决定GUI只能是基于Windows的(.NET?),它将通过Socket或类似的方法与相关的Win / Linux机器上的逻辑进行通信。这是一个好主意吗?

我认为这是有道理的,只有后端必须是某种安全的(即不能安装在用户的计算机上),或者如果您有一个类似于客户端的瘦客户端方法。写跨平台GUI比编写跨平台后端(在我看来),所以你应该做这两个部分跨平台。顺便说一下,基于.NET的GUI不是仅Windows – Mono已经支持Windows Forms的一个很大的子集,例如(但不是WPF,可悲的是)。

编辑:

关于你的单声道问题:单声道大部分是稳定的,但并不是一切都没有实现。可以肯定的是,您可以运行The Mono Migration Analyzer (MoMA),以了解在Mono中有什么不起作用。但是我认为so many companies在生产环境中成功使用Mono意味着您至少应该将Mono视为一种选择!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值