关于 windows 开发界面库现状的咨询~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
six880214
V2EX    程序员

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

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

    在当前公司工作 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     Solana     2979 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 13:43 PVG 21:43 LAX 06:43 JFK 09:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86