V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
six880214
V2EX  ›  程序员

关于 windows 开发界面库现状的咨询~

  •  
  •   six880214 · 2016-07-05 17:55:58 +08:00 · 16667 次点击
    这是一个创建于 3067 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在当前公司工作 5 年,一直进行 windows 应用程序开发,期间夹杂着服务器和安卓的开发,但是还是以 windows 应用程序为主。由于公司客户群的特殊性,有很大一部分用户仍然停留在 xp 阶段。 目前公司主要的开发工具是 vc6.0 ,实在是太过时了。无法很便捷的处理出优美的界面效果。现在想升级开发工具的同时,引入界面库。目前对这方面还不是很熟悉,看了一些。 DirectUI UI , HTMLayout , Sciter 等,还是没有拿定主意。 目前比较倾向 HTMLayout 和 Sciter ,因为简单,轻量。 大家有什么好的建议没? 根据公司项目的现状,不需要很庞大的库,希望轻量,简单。最好兼容 mfc 。

    106 条回复    2018-06-09 08:30:06 +08:00
    1  2  
    wan0eve
        1
    wan0eve  
       2016-07-05 18:12:30 +08:00
    几年前使用过 HTMLayout ,做简单的界面应该没问题。但是复杂界面会有很多坑,样式调起来比较麻烦,很主流浏览器的显示效果会有些差别
    jixiangqd
        2
    jixiangqd  
       2016-07-05 18:31:44 +08:00
    第一年也是类似的坑,不过好在我们是用 vs2008 。
    建议楼主跳槽转搞移动或者转 web 前端,混 Windows 界面开发出力多,费劲,工资还低,就业空间还有限。

    PS :我现在已经出坑 2 年多了,转 python 开发爽的很~
    beginor
        3
    beginor  
       2016-07-05 18:37:17 +08:00 via Android
    不想出坑的话建议转 C++.net , 界面用 wpf ,也可以调用 mfc
    theoractice
        4
    theoractice  
       2016-07-05 19:25:45 +08:00
    不想学其他语言的话用 qt quick 吧。可以做 Material Design 风格的界面,很漂亮的
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       2016-07-05 19:32:18 +08:00
    duilib 这个..
    edsgerlin
        6
    edsgerlin  
       2016-07-05 20:31:01 +08:00
    其实 WPF 最好用了,不过如果要利用原有 C++代码还是 Qt 或者 WxWidgets 吧。客户大部分用 XP ,估计 PC 配置高不到哪儿去, Web UI 其实性能挺糟糕的……
    edsgerlin
        7
    edsgerlin  
       2016-07-05 20:37:01 +08:00
    XP 最多支持到.NET 4.0 ,然后 WPF 和传统 Win32 GUI 的互操作 MSDN 有文档。 https://msdn.microsoft.com/en-us/library/ms742522.aspx
    如果可以接受在所有客户机装.NET 4.0 的话, WPF 是比 duilib 之流完善得多的 DirectUI 框架。
    sc3263
        8
    sc3263  
       2016-07-05 20:43:58 +08:00
    “最好兼容 MFC ”不知道需要兼容到啥程度? duilib 貌似是对 win32 api 的再次封装,兼容性应该可以。
    个人还是推荐 Qt 。不管是用 QWidget 配合 QSS ,还是 QML ,想做点界面效果都还挺简单的。
    icylord
        9
    icylord  
       2016-07-05 21:07:14 +08:00
    目前用 QT ,还行
    six880214
        10
    six880214  
    OP
       2016-07-05 22:02:32 +08:00
    首先,集体感谢一下以上朋友的回复,谢谢!再者统一回复一下问题,关于 QT 已经被部门主管否定, wpf 没怎么关注,但是应该是要装.net 吧,都是政府的客户,所以装.net 的难度有点大。还有其他推荐吗?
    six880214
        11
    six880214  
    OP
       2016-07-05 22:03:06 +08:00
    @jixiangqd 内陆地区,大环境不行~
    six880214
        12
    six880214  
    OP
       2016-07-05 22:03:40 +08:00
    @wan0eve 我是要做客户端,不是做 web
    theoractice
        13
    theoractice  
       2016-07-05 22:16:43 +08:00
    突然想起来了某轮子的 gaclib
    tmplinshi
        14
    tmplinshi  
       2016-07-05 22:23:50 +08:00
    推荐一下炫彩界面库 http://www.xcgui.com/
    six880214
        15
    six880214  
    OP
       2016-07-05 22:26:47 +08:00
    @icylord 编译出来的客户端大吗?
    six880214
        16
    six880214  
    OP
       2016-07-05 22:27:31 +08:00
    @edsgerlin qt 编译出来的客户端是不是很大?
    learnshare
        17
    learnshare  
       2016-07-05 22:36:49 +08:00
    我更喜欢 Qt , GUI 组件啥的质量都不错, QML 也很爽
    edsgerlin
        18
    edsgerlin  
       2016-07-05 22:38:02 +08:00
    @six880214 主要看你用的组件数量,一般来说像 YY 这样网络等等都用 Qt 的要 20~30MB 。只用最核心的 GUI 库,其他全调用 Windows API 的话 10M 以内。
    busyluo
        19
    busyluo  
       2016-07-05 22:39:26 +08:00 via iPhone
    electron
    aardio
    delphi
    winform
    wpf
    qt
    nw.js
    swing
    sciter
    xcgui

    这是之前做的个记录,话说领导为什么把 QT15 否决了?
    oimotis
        20
    oimotis  
       2016-07-05 22:44:28 +08:00
    之前有了解了一下这方面,我选的话,只能选 QT 了。
    chenxiaoyu3
        21
    chenxiaoyu3  
       2016-07-05 22:44:33 +08:00
    WPF 好,但是性能可能要求高。看你们的需求应该是 winForm 最合适吧。
    QT 和其他开源 UI 库什么的,坑太多了。。。
    busyluo
        22
    busyluo  
       2016-07-05 22:45:25 +08:00 via iPhone
    electron ,
    aardio ,
    delphi ,
    winform ,
    wpf ,
    qt ,
    nw.js ,
    swing ,
    sciter ,
    xcgui ,竟然自动把换行去了
    gotounix
        23
    gotounix  
       2016-07-05 23:07:13 +08:00
    深有同感啊,为了兼容 XP ,为了跨平台,我一直用 QT4 。
    XadillaX
        24
    XadillaX  
       2016-07-05 23:37:03 +08:00
    electron 吧。
    chengzi
        25
    chengzi  
       2016-07-06 00:17:55 +08:00
    其实 wpf 对于现在正常的 PC 配置来说已经已经完全感觉不到卡顿了,不过这几年微软对 wpf 的开发好像停滞了。精力都放到 uwp 上了,却好像没什么人在开发 uwp 应用。
    8023
        26
    8023  
       2016-07-06 00:19:05 +08:00 via Android
    QT 大法好!
    sc3263
        27
    sc3263  
       2016-07-06 00:32:03 +08:00 via iPhone
    @six880214 看你的回复似乎很在乎体积。你可以看一下暴雪战网客户端下几个 Qt 相关的 dll 体积。只做界面的话要包含的 dll 很少的。而且你还可以做进一步裁减。知乎上的姚冬之前发过一个 Qt4 的编译配置,记得是 release 下只有 5M 。
    cppgohan
        28
    cppgohan  
       2016-07-06 00:52:59 +08:00
    @busyluo 都有用过调研过吗?
    说说主观调研结果嘛
    edsgerlin
        29
    edsgerlin  
       2016-07-06 00:59:03 +08:00
    @chengzi 然而即使停滞了,个人感觉 WPF 还是比 Qt5 好用……而且现在 Qt5 也变成纯 DirectUI 了,性能不比 WPF 强。如果用 QML 而不是 C++写的话,不如 WPF 快。
    hronro
        30
    hronro  
       2016-07-06 00:59:31 +08:00
    @XadillaX electron 支持 XP 吗?我记得之前想在 XP 上装 ATOM ,结果提示不支持
    wangxkww
        31
    wangxkww  
       2016-07-06 01:34:54 +08:00
    我很好奇主管为什么否定 Qt ……
    hrong
        32
    hrong  
       2016-07-06 06:32:07 +08:00 via Android
    Delphi 吧 组件丰富 性能也不错 开心环境, DB 的集成支持都不错 虽然廉颇老亦。。。
    missdeer
        33
    missdeer  
       2016-07-06 08:28:50 +08:00
    兼容 MFC 最好的不是 Xtreme Toolkit 么
    diyisoft
        34
    diyisoft  
       2016-07-06 09:27:59 +08:00
    @hrong 支持
    six880214
        35
    six880214  
    OP
       2016-07-06 09:37:15 +08:00
    @busyluo 领导的大致意思是 qt 现在的主要应用领域在嵌入式~
    six880214
        36
    six880214  
    OP
       2016-07-06 09:41:10 +08:00
    @sc3263 因为本身做的都是瘦客户端,轻量级应用,如果引入库以后体积增加太多,会有很多问题。
    six880214
        37
    six880214  
    OP
       2016-07-06 09:42:53 +08:00
    @wangxkww 一个是应用领域主要是在嵌入式,二个是编译出来的客户端比现在大太多~
    six880214
        38
    six880214  
    OP
       2016-07-06 09:43:45 +08:00
    看来还是很少人用过 HTMLayout 和 Sciter ,有没有用过的朋友来具体科普一下~
    kevinzhwl
        39
    kevinzhwl  
       2016-07-06 09:46:30 +08:00 via iPhone
    先放弃 vc6 坑很多。
    针对 xp 可以用 vs2010 ,可以满足的
    不要 vs20xx 的其他就行
    vs2010 本身带了一套 mfcxxx 的 ui ,虽然一般,但最兼容
    six880214
        40
    six880214  
    OP
       2016-07-06 09:47:41 +08:00
    还有就是如果转 c#就意味着要给客户装.net ,这种成本的增加,目前是不太可以接受的~
    KaoN
        41
    KaoN  
       2016-07-06 10:06:33 +08:00
    其实你们领导对 Qt 看法挺正确的。。。桌面端 Qt 的确不够出彩
    six880214
        42
    six880214  
    OP
       2016-07-06 10:11:01 +08:00
    @busyluo 求 sciter 使用感受~~~~~
    sryanyuan
        43
    sryanyuan  
       2016-07-06 10:17:46 +08:00
    c++写界面貌似是个坑 现在写简单界面基本用 duilib ,虽然有坑,但是开源还靠谱点
    995573753
        44
    995573753  
       2016-07-06 10:22:49 +08:00
    我开始还推荐.NET 做,但是一看客户主要是 XP 。。就。。。。。。。。
    SmiteChow
        45
    SmiteChow  
       2016-07-06 10:26:24 +08:00
    duilib
    dreamwhui
        46
    dreamwhui  
       2016-07-06 10:30:34 +08:00
    duilib 搞搞 还是不错的 清亮
    wizardoz
        47
    wizardoz  
       2016-07-06 10:36:05 +08:00
    既然用户都能够忍受一直使用 XP 不升级,我觉得一直保持 VC6.0 给他们开发界面也没啥。
    loading
        48
    loading  
       2016-07-06 10:53:27 +08:00 via Android
    同建议 dephli
    只是太老,但是,确实都支持,而且还挺新的。
    @hrong
    six880214
        49
    six880214  
    OP
       2016-07-06 10:58:29 +08:00
    @loading 以前用 c++ builder ,后来发现 builder 和 mfc 的 dll 互相调用各种坑,因为内存机制的不同,后来弃坑了~
    zhangdawei
        50
    zhangdawei  
       2016-07-06 11:03:43 +08:00
    winform 也不错啊,自己做小工具一直用这个
    wakiki
        51
    wakiki  
       2016-07-06 12:11:33 +08:00 via Android
    都说了用户用 xp ,还有人提 Electron
    thinkif
        52
    thinkif  
       2016-07-06 12:11:51 +08:00 via iPhone
    政府机关安装框架就更没问题了, 而且他们的电脑一般都有各种管理系统,.net 的不在少数,没准你们部署的时候会发现大多数电脑都已经有 .net 框架了,建议先了解一下目标单位电脑的软硬件配置,如果有不少电脑安装了.net 2.0 3.0 3.5 之类的就把目标框架定成 2.0 否则就用 4.0
    lhgtop
        53
    lhgtop  
       2016-07-06 13:33:28 +08:00
    我记得迅雷团队共享过他们的 UI 框架, 光影魔术手新版也用的这个框架. 不过据说文档差一些,你可以咨询下.
    lhgtop
        54
    lhgtop  
       2016-07-06 13:34:46 +08:00
    http://xldoc.xl7.xunlei.com/0000000018/0000000018.html 这个是迅雷 UI 引擎的文档.
    cchange
        55
    cchange  
       2016-07-06 14:25:52 +08:00
    @chengzi uwp 貌似不支持 win7 吧?
    感觉这个就推不起来
    kuxiazi
        56
    kuxiazi  
       2016-07-06 14:30:01 +08:00 via Android
    @cchange win10 马上破 4 亿用户了 正在吞噬 win7 用户
    six880214
        57
    six880214  
    OP
       2016-07-06 14:40:23 +08:00
    @thinkif 问题是市里面的机器可能都有.net ,但是县里,乡里就不行了,而且你不亲自跑实施,基本人家不可能自己动手的,整个省,成本太大~
    zaishanfeng
        58
    zaishanfeng  
       2016-07-06 14:44:18 +08:00
    建议跳坑, 哦不对是跳出坑, 没有必要为老板鞠躬尽瘁, 你贡献再大也只是个喝汤的角色。还不如换个高薪不坑的
    six880214
        59
    six880214  
    OP
       2016-07-06 14:44:42 +08:00
    @thinkif 还有他们现行系统用到.net 的真没有, c/s 都是 delphi ,其他都是 b/s
    six880214
        60
    six880214  
    OP
       2016-07-06 14:45:28 +08:00
    @zaishanfeng 有汤喝就不错了,内陆城市,就这个环境。。。
    six880214
        61
    six880214  
    OP
       2016-07-06 14:46:52 +08:00
    @kuxiazi 我在 win10 下写代码,然后测试和编译打包都需要到 xp 的虚拟机上去。。。。。因为有时候 win10 编译的 vc6.0 有问题。。。。。
    six880214
        62
    six880214  
    OP
       2016-07-06 14:48:34 +08:00
    @jixiangqd 是转 web 开发了吗?
    loading
        63
    loading  
       2016-07-06 14:48:43 +08:00 via Android
    @six880214 为什么不一直在 xp 的虚拟机你写代码…
    six880214
        64
    six880214  
    OP
       2016-07-06 14:49:13 +08:00
    @loading 虚拟机那性能。。。。
    six880214
        65
    six880214  
    OP
       2016-07-06 14:51:26 +08:00
    @wakiki 淡定~~
    loading
        66
    loading  
       2016-07-06 14:52:14 +08:00 via Android
    @six880214 搞不懂你们客户是 xp ,为什么不在 xp 的机器开发。

    我们这边配的软件,估计有些是你们公司一样,开发机超级牛,然后我们的机器跑不动…
    six880214
        67
    six880214  
    OP
       2016-07-06 14:53:47 +08:00
    @loading 你让我天天用 xp ,扛不住啊~我也想与时俱进下。。。
    loading
        68
    loading  
       2016-07-06 15:52:37 +08:00 via Android
    我上班用 xp,win7 ,回家 osx,archlinux
    six880214
        69
    six880214  
    OP
       2016-07-06 15:56:37 +08:00
    @loading xp 就 3.25g 内存,扛不住啊,开个 Android Studio 就傻了。。。
    evitceted
        70
    evitceted  
       2016-07-06 16:35:38 +08:00
    WPF 不用吗
    six880214
        71
    six880214  
    OP
       2016-07-06 16:41:44 +08:00
    @evitceted 客户机装.net 框架是问题~
    jixiangqd
        72
    jixiangqd  
       2016-07-06 16:44:07 +08:00
    @six880214 我是科班出身,底子还算是有的,在北京混,转啥都比较好转。目前是搞云计算相关的东西
    loading
        73
    loading  
       2016-07-06 17:14:58 +08:00 via Android   ❤️ 1
    @six880214
    我的部署经验是和 .net 框架一起下发。命名为
    1.exe (.net 或其他依赖)
    2.exe

    N.exe
    gamexg
        74
    gamexg  
       2016-07-06 17:26:30 +08:00 via Android
    @six880214 XP 也有 64 位的,之前报过一个 xp 64 位下的 bug 。。。
    mozartgho
        75
    mozartgho  
       2016-07-06 21:04:08 +08:00
    桌面产品的界面开发,强烈推荐 Qt ,易学易维护,控件都 CSS 化了,可以像修改 CSS 那样调整控件的外观。
    kangsgo
        76
    kangsgo  
       2016-07-06 21:11:31 +08:00
    @mozartgho Qt 好学吗?我没有 UI 基础,想学一个界面的软件,现在只会 python ,可以学别的语言,可以帮我推荐一个思路吗?
    SlipStupig
        77
    SlipStupig  
       2016-07-06 21:33:07 +08:00
    CEF+HTML+CSS+JS 目前最好的解决方案,还可以跨平台
    icylord
        78
    icylord  
       2016-07-06 21:40:59 +08:00   ❤️ 1
    @kangsgo QT 挺简单的。<Qt 学习之路 2> 跟着这篇看完,差不多就入门了
    kangsgo
        79
    kangsgo  
       2016-07-06 21:45:32 +08:00
    @icylord 要先学 C++然后学这个吗?
    kangsgo
        80
    kangsgo  
       2016-07-06 21:45:50 +08:00
    @SlipStupig 用 js 做事件吗?
    SlipStupig
        81
    SlipStupig  
       2016-07-06 21:50:21 +08:00
    @kangsgo CEF 就是 chrome ,用 web 开发界面比 C++要轻松的多
    kangsgo
        82
    kangsgo  
       2016-07-06 22:17:41 +08:00
    @SlipStupig 可以模仿长得像传统桌面软件么?我同学死脑筋硬要我做客户端性质的
    yjd
        83
    yjd  
       2016-07-06 22:34:47 +08:00
    @995573753 我记得好像微软是打算脱库编译本地版。。不知道什么时候实现。
    ytom
        84
    ytom  
       2016-07-06 23:01:18 +08:00
    可以试试 FairyGUI 啊,做 UI 很灵活。编辑器自身就是用 FairyGUI 做的。可以选择 Flash Air 或者 H5 。
    kangsgo
        85
    kangsgo  
       2016-07-07 00:25:53 +08:00 via iPhone
    @ytom 上手难吗? c++?
    SlipStupig
        86
    SlipStupig  
       2016-07-07 02:27:50 +08:00   ❤️ 1
    @kangsgo 具体看网易云音乐 windows 客户端
    kangsgo
        87
    kangsgo  
       2016-07-07 08:42:33 +08:00
    @SlipStupig 那么,那么,我就知呀再学个 js 就可以完全用了?这么强大!
    995573753
        88
    995573753  
       2016-07-07 09:15:36 +08:00
    @yjd 不能把微软规划太放心上。 作为.NET 开发者 失望很久了。
    allenx
        89
    allenx  
       2016-07-07 09:29:42 +08:00
    在老机器上跑,用 QT 吧,兼容性还算可以。我司 windows 程序基本上都是用 QT 开发的。
    zeus255
        90
    zeus255  
       2016-07-07 09:45:14 +08:00
    看了前面的内容,既然不愿意用 QT 的话,我觉得你需要:
    1 、迁移到 VS2008 ,这个版本是 6.0 以后所有 VS 版本里面速度最快的,对 XP 的兼容性很好。再装个 VAX 插件就完美了。
    2 、装一下 VC2008FeaturePack 。微软官方提供的补丁包,集成了 BCG 界面库,这东西是基于 MFC 开发的,效果不错,可以做出 OFFICE2007 那样的界面风格。
    考虑到你提出要兼容 MFC ,那么当前界面应该是以 C++开发为主,上面这个的迁移成本应该是我能想到最小的。
    six880214
        91
    six880214  
    OP
       2016-07-07 09:49:20 +08:00
    @gamexg 没用过 64 位 xp
    six880214
        92
    six880214  
    OP
       2016-07-07 09:51:37 +08:00
    @zeus255 十分感谢,我看看~
    six880214
        93
    six880214  
    OP
       2016-07-07 09:52:40 +08:00
    @loading 这方法感觉略坑啊~
    six880214
        94
    six880214  
    OP
       2016-07-07 09:53:34 +08:00
    @wizardoz 领导不用 xp ,领导想要好看的界面,下面用的人用 xp ,又要求速度和兼容性。。。。
    six880214
        95
    six880214  
    OP
       2016-07-07 09:54:37 +08:00
    @jixiangqd 内陆没北京那种大环境啊~
    six880214
        96
    six880214  
    OP
       2016-07-07 10:07:44 +08:00
    @SlipStupig 在 xp 上内存占用和运行速度有保证吗?
    SlipStupig
        97
    SlipStupig  
       2016-07-07 10:11:45 +08:00
    @six880214 chrome 在 pc 上能跑起来, CEF 会更节省内存
    six880214
        98
    six880214  
    OP
       2016-07-07 10:33:20 +08:00
    @SlipStupig chrome 在我眼里一直是内存占用大户,所以不知道到底效果如何,尤其是低配机~
    sunnycase
        99
    sunnycase  
       2016-07-07 10:41:08 +08:00
    用 wpf 啊,给客户装.net 不是什么难事吧,把.net 安装程序打包到你产品的安装程序里就行了啊。
    ayumilove
        100
    ayumilove  
       2016-07-07 10:48:49 +08:00
    @six880214 在 XP 上 装 Framework ,自己压一个安装包,让用户自己装就可以了。
    没有多大成本吧~

    我.net 的程序 就是把所有依赖、先决条件、配置等 压成一个 EXE 用户自己就能装。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3399 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.