V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yejinmo
V2EX  ›  问与答

问下现在跨平台界面开发大家都用啥方案啊

  •  1
     
  •   yejinmo · 2018-01-19 17:51:34 +08:00 · 2987 次点击
    这是一个创建于 2289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司要把原项目是 C# WinForm 的移植到 Linux 桌面端 不知用什么技术比较好

    要求

    • 项目比较大 图形设计相关 所以要求性能
    • 运行环境为 Linux 桌面 及 Windows
    • 最好是能一套代码编译一下通用的

    目前所知

    Electron 及各种 CEF 框架的

    • 不知涉及到复杂图形界面性能有没有保障 好像用这种技术的都是功能比较简单的项目

    QT 及 Java

    • 公司技术栈不支持 开发成本较高

    GTK# 及 Mono

    • 没有用过 也没见别人用过 不知道有没有什么坑
    26 条回复    2018-01-20 10:20:48 +08:00
    Humorce
        1
    Humorce  
       2018-01-19 17:56:13 +08:00 via iPhone   ❤️ 1
    mono 可以看 keepass
    FindHao
        2
    FindHao  
       2018-01-19 17:57:55 +08:00 via Android   ❤️ 2
    qt 无疑,开发效率和性能都相对较佳。选择其他的你们公司技术栈就支持吗?
    chroming
        3
    chroming  
       2018-01-19 17:58:50 +08:00 via Android   ❤️ 1
    pyqt 还算比较简单
    qsnow6
        4
    qsnow6  
       2018-01-19 17:59:35 +08:00 via iPhone   ❤️ 1
    c#不是可以用 core
    yejinmo
        5
    yejinmo  
    OP
       2018-01-19 18:04:45 +08:00
    @Humorce #1
    好的。

    @FindHao #2
    毕竟是个全新的方向 只是想成本最低效率最高 也就是说。。少招人

    @chroming #3
    底层还是 QT 那套然后用 py 封装的么。。

    @qsnow6 #4
    部分后端逻辑已经用 .Net Core 重写了 但是界面这很愁啊 既要考虑美观又要考虑性能
    dremy
        6
    dremy  
       2018-01-19 18:07:23 +08:00 via iPhone   ❤️ 1
    啥,你在质疑 WebGL 的性能吗?
    coderluan
        7
    coderluan  
       2018-01-19 18:10:48 +08:00   ❤️ 1
    也是做图形图像的,一般是用 pyqt 写的 GUI 来调用 C/C++写的 CLI,兼顾性能和开发效率。
    yejinmo
        8
    yejinmo  
    OP
       2018-01-19 18:11:17 +08:00
    @dremy #6
    没错 就是光明正大的质疑 web 的性能。。。
    yejinmo
        9
    yejinmo  
    OP
       2018-01-19 18:12:03 +08:00
    @coderluan #7
    pyqt 写出来的界面 美观性如何 开发效率怎么样。。
    nicevar
        10
    nicevar  
       2018-01-19 18:18:09 +08:00   ❤️ 1
    对性能有要求就别考虑 electron 了
    Java 现在 Swing 有点老了,用的最好的也就是 JetBrain 系列了,不过内存吃得厉害,JavaFX 现在用的人少了,踩坑的人也少,遇到问题不好解决
    .Net Core 还不太程序,没见什么软件用
    因此选择 Qt 是没错的,毕竟市面上用 Qt 开发的软件多如牛毛
    feverzsj
        11
    feverzsj  
       2018-01-19 18:23:03 +08:00   ❤️ 1
    不是有 wine 嘛
    huclengyue
        12
    huclengyue  
       2018-01-19 18:23:24 +08:00 via Android   ❤️ 1
    @yejinmo 美观性还算可以,用 qt 的项目很多,你可以看看。
    coderluan
        13
    coderluan  
       2018-01-19 18:23:56 +08:00   ❤️ 1
    @yejinmo 开发效率很高,支持 QtDesigner,一个下午就能基本上手,GUI 默认就是白框,想美观你得自己写 css。
    htfy96
        14
    htfy96  
       2018-01-19 18:47:27 +08:00   ❤️ 1
    CEF 最近 render to GL surface 的 patch 已经被合并了,效率还是比较有保障的,至少流畅播放 1080p 视频是可以的
    nicevar
        15
    nicevar  
       2018-01-19 18:47:42 +08:00   ❤️ 1
    @coderluan 最好做过大点的项目再推荐,PyQt 开发的软件大多都是小工具和个人软件类的,基本上没见到大型软件使用,不如全部用 Qt,运行效率还高,还有楼主是公司用的,PyQt 是 GPL 的,写的软件要开源,要不然律师函过来了就尴尬了,而 Qt 可以选择 LGPL
    coderluan
        16
    coderluan  
       2018-01-19 20:08:19 +08:00   ❤️ 1
    @nicevar 公司项目也都是直接 QT (所以说我没做过大项目我是否认的),PyQt 我自己学着玩的,感觉方便就推荐了,GPL 这个确实没注意到,感谢提醒。
    yejinmo
        17
    yejinmo  
    OP
       2018-01-19 20:15:04 +08:00
    @nicevar #10
    Java 是最不想考虑的 Core 的话目前暂时也只能写写后端了

    @feverzsj #11
    用 wine 的话。。有点不规矩啊

    @nicevar #15
    @coderluan #16
    讨论了下 推 QT 的可能性大些 就是全部用 QT 重写这个开发进度有点难受
    nicevar
        18
    nicevar  
       2018-01-19 20:24:56 +08:00   ❤️ 1
    @yejinmo 如果追求开发效率,Qt 可以考虑 qml,配合 js 开发的,也能跟 c++对接开发封装一些控件,我在 12 年到 15 年做项目用的比较多,最近两年没怎么用了,最近情况不太了解,估计应该稳定多了
    7654
        19
    7654  
       2018-01-19 20:30:02 +08:00   ❤️ 1
    C#写 GUI 软件已经转移到树莓派上运行了,目前内存控制的不太好
    ashong
        20
    ashong  
       2018-01-19 20:36:03 +08:00   ❤️ 1
    桌面 App 都改用 html 做界面( cef 做渲染) 后台 c++ 实现 web server, 通信用 websocket,数据用 post,get
    yejinmo
        21
    yejinmo  
    OP
       2018-01-19 20:45:02 +08:00
    @nicevar #18
    好的 明后天研究下 您说的方案

    @7654 #19
    不跑树莓派 主要还是装着 Linux 的商用机 C# 还是够跑的吧

    @ashong #20
    您说的是功能比较简单的 APP 吧 比如 网易云音乐 腾讯微云 这种界面简单对性能要求不高的 大一些的项目用 web 实现还是觉得不够用啊
    liquanhai
        22
    liquanhai  
       2018-01-19 20:54:56 +08:00 via Android
    安安稳稳的用 Qt,别的都不用去考察了,都是徒劳无功。
    leeg810312
        23
    leeg810312  
       2018-01-19 21:01:59 +08:00 via Android
    C#技术栈应该选 mono 呀,Linux 下要图形加速应该是用 OpenGL,貌似也没有别的选择
    loading
        24
    loading  
       2018-01-19 21:03:39 +08:00 via Android
    go 和…(赶时髦的叫 H5 )
    loginv2
        25
    loginv2  
       2018-01-20 06:33:47 +08:00 via Android
    在用 lazarus,不过语言是 pascal 的,和 delphi 差不多吧。目前只在 Windows 下用,但是可以跨平台。只是很多库都很不完善,有能力可以自己想办法解决,或者给官方贡献代码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2512 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:58 · PVG 23:58 · LAX 08:58 · JFK 11:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.