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

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

  •  
  •   six880214 · Jul 5, 2016 · 19766 views
    This topic created in 3772 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
    wan0eve
    Jul 5, 2016
    1
    几年前使用过 HTMLayout ,做简单的界面应该没问题。但是复杂界面会有很多坑,样式调起来比较麻烦,很主流浏览器的显示效果会有些差别
    jixiangqd
    jixiangqd
    Jul 5, 2016
    2
    第一年也是类似的坑,不过好在我们是用 vs2008 。
    建议楼主跳槽转搞移动或者转 web 前端,混 Windows 界面开发出力多,费劲,工资还低,就业空间还有限。

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

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

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

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

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