• 请不要在回答技术问题时复制粘贴 AI 生成的内容
six880214
V2EX  ›  程序员

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

  •  
  •   six880214 · Jul 5, 2016 · 18673 views
    This topic created in 3608 days ago, the information mentioned may be changed or developed.

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

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

    PS :我现在已经出坑 2 年多了,转 python 开发爽的很~
    beginor
        3
    beginor  
       Jul 5, 2016 via Android
    不想出坑的话建议转 C++.net , 界面用 wpf ,也可以调用 mfc
    theoractice
        4
    theoractice  
       Jul 5, 2016
    不想学其他语言的话用 qt quick 吧。可以做 Material Design 风格的界面,很漂亮的
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       Jul 5, 2016
    duilib 这个..
    edsgerlin
        6
    edsgerlin  
       Jul 5, 2016
    其实 WPF 最好用了,不过如果要利用原有 C++代码还是 Qt 或者 WxWidgets 吧。客户大部分用 XP ,估计 PC 配置高不到哪儿去, Web UI 其实性能挺糟糕的……
    edsgerlin
        7
    edsgerlin  
       Jul 5, 2016
    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  
       Jul 5, 2016
    “最好兼容 MFC ”不知道需要兼容到啥程度? duilib 貌似是对 win32 api 的再次封装,兼容性应该可以。
    个人还是推荐 Qt 。不管是用 QWidget 配合 QSS ,还是 QML ,想做点界面效果都还挺简单的。
    icylord
        9
    icylord  
       Jul 5, 2016
    目前用 QT ,还行
    six880214
        10
    six880214  
    OP
       Jul 5, 2016
    首先,集体感谢一下以上朋友的回复,谢谢!再者统一回复一下问题,关于 QT 已经被部门主管否定, wpf 没怎么关注,但是应该是要装.net 吧,都是政府的客户,所以装.net 的难度有点大。还有其他推荐吗?
    six880214
        11
    six880214  
    OP
       Jul 5, 2016
    @jixiangqd 内陆地区,大环境不行~
    six880214
        12
    six880214  
    OP
       Jul 5, 2016
    @wan0eve 我是要做客户端,不是做 web
    theoractice
        13
    theoractice  
       Jul 5, 2016
    突然想起来了某轮子的 gaclib
    tmplinshi
        14
    tmplinshi  
       Jul 5, 2016
    推荐一下炫彩界面库 http://www.xcgui.com/
    six880214
        15
    six880214  
    OP
       Jul 5, 2016
    @icylord 编译出来的客户端大吗?
    six880214
        16
    six880214  
    OP
       Jul 5, 2016
    @edsgerlin qt 编译出来的客户端是不是很大?
    learnshare
        17
    learnshare  
       Jul 5, 2016
    我更喜欢 Qt , GUI 组件啥的质量都不错, QML 也很爽
    edsgerlin
        18
    edsgerlin  
       Jul 5, 2016
    @six880214 主要看你用的组件数量,一般来说像 YY 这样网络等等都用 Qt 的要 20~30MB 。只用最核心的 GUI 库,其他全调用 Windows API 的话 10M 以内。
    busyluo
        19
    busyluo  
       Jul 5, 2016 via iPhone
    electron
    aardio
    delphi
    winform
    wpf
    qt
    nw.js
    swing
    sciter
    xcgui

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

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

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

    我.net 的程序 就是把所有依赖、先决条件、配置等 压成一个 EXE 用户自己就能装。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 159ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    ♥ Do have faith in what you're doing.