用来做图形界面, Qt 和 HTML, 哪个更更先进, 那个更强大? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiyinyiyong
V2EX    Qt

用来做图形界面, Qt 和 HTML, 哪个更更先进, 那个更强大?

  •  
  •   jiyinyiyong
    jiyinyiyong 2012 年 12 月 23 日 43126 次点击
    这是一个创建于 4790 天前的主题,其中的信息可能已经有所发展或是发生改变。
    帖子是一个 HTML 比较熟悉, Qt 只会抄代码的人发的.
    比如我想做一些很漂亮的图形界面, 电影里那种, 文本被突出, 而按钮之类被简化..
    总之就是很科幻的感觉, 还有比如桌面, 切换来去的特效, 或者设计什么新的 UI 之类
    对于以往桌面平台编程的开发比较陌生..
    记得在推上看人说起 Mac 平台的界面开发工具让人人觉得 HTML 很原始
    https://twitter.com/tualatrix/status/264988728106287104
    我想说, 我见过 HTML 有各种框架甚至 Meteor 那么乱来的框架, 能做很强的应用
    .. 回到问题, 单单说图形界面, 哪一个工具更先进呢?
    求大伙给点指导 :)
    37 条回复    2017-12-17 03:46:33 +08:00
    reusFork
        1
    reusFork  
       2012 年 12 月 23 日
    当然是qt。html能做的qt也能做,qt能做的html未必能做。虽然两个东西一个是框架一个是标记语言,用来比较本来就不太公平…
    logicthink
        2
    logicthink  
       2012 年 12 月 23 日
    HTML,直接Web操作系统层次解决方式。Qt没什么意义,源自C++那些淘汰的一坨。
    Js
        3
    Js  
       2012 年 12 月 23 日
    关键是扩展性, gecko,qtwebkit都有一堆重型应用
    tux
        4
    tux  
       2012 年 12 月 23 日
    简单的才是强大的
    jiyinyiyong
        5
    jiyinyiyong  
    OP
       2012 年 12 月 23 日
    @reusFork 能给具体一些例子不?
    binux
        6
    binux  
       2012 年 12 月 23 日
    如果从应用层面考虑,Qt能直接操作到系统API,当然是Qt强了。
    但是从这两个东西本身,用的都是它预先提供的样式、交互罢了。如果它没提供那就没办法,如果你自己去调系统的API实现,那又和Qt没有什么关系。没有谁“更先进, 那个更强大”一说
    Narcissu5
        7
    Narcissu5  
       2012 年 12 月 23 日
    难怪有人跟我说HTML5教惹不起,什么时候连C++都被淘汰了。。
    reusFork
        8
    reusFork  
       2012 年 12 月 23 日
    @jiyinyiyong 比如html5的canvas、媒体播放、storage之类特性,qt天生就有了,浏览器环境的发展只是在跟随桌面环境的发展。qt也能直接调用webkit之类渲染引擎,但反过来就不行,webkit不能调用本地系统的api比如qt
    reusFork
        9
    reusFork  
       2012 年 12 月 23 日
    @logicthink 主流的渲染引擎都是c++写的,js引擎也是,c++还远未到淘汰的时候。何况,要做qt开发,完全可以不用c++,有很多语言都有qt的binding。
    jiyinyiyong
        10
    jiyinyiyong  
    OP
       2012 年 12 月 23 日
    @reusFork 那是说这些事情 HTML5 能做, 但是做不好或者不方便咯
    reusFork
        11
    reusFork  
       2012 年 12 月 23 日
    @jiyinyiyong 好不好或者方便不方便这些都是主观的判断,没必要作吧。总之浏览器是个很受限的环境,如果你想做的事情能在浏览器上实现那就用,不能那就不用(或者也可以借助flash之类的环境)
    tioover
        12
    tioover  
       2012 年 12 月 23 日 via Android
    美工更重要
    另外qt能嵌入html的
    jiyinyiyong
        13
    jiyinyiyong  
    OP
       2012 年 12 月 23 日
    @reusFork 我的意思是有没有必须要用 Qt 才能做的
    HTML 现在技术有点乱, 又是 Node 又是文件 API 又是前端 MVC,
    .. 架一个服务端来模拟 TCP 的技术都出现了...
    结果很多功能原先纯网页除非 Flash 都不用想的现在不怕麻烦也能做出来了
    那么 Qt 的优势是在哪里?
    jjgod
        14
    jjgod  
       2012 年 12 月 23 日   1
    我在 Qt Project 时做的是图形和文本渲染,包括传统 Qt Widgets 和新的 Qt Quick 1/2 的,也帮助 QtWebKit 组做一些功能和优化,个人觉得 Qt Project 的开发力量还是有所欠缺,现在在 Digia 的核心开发人员大概就 40 来人 (大概还有 20 人开发 Qt Creator),加上 KDAB、RIM 等公司雇用的全职 Qt 开发人员也不会超过 100 人。

    而现在随便一个开发浏览器引擎的团队都至少有百人,Google、Microsoft 和 Apple 当然财大气粗了,Mozilla 的团队也不小。对于 HTML5 的特性的开发速度比 Qt 的特性开发速度快很多是正常的。当然不同的厂商容易分散重点,可能大家都只推动自己关心的一块,你未必用得上。

    你引用的人做图形界面应用的经验可能未必很丰富,但从开发效率看,Qt 5 的 Qt Quick 2 框架是很符合你描述的需要的。在开发工具的支持上可能未必像 OS X/iOS 的 Core Animation 和 Quartz Composer 组合成熟,但性能和可扩展性并不弱于 OS X/iOS 提供的,另外还具有跨平台的优点。

    我去年写过一篇相关主题的文章,有兴趣可以看看:
    http://blog.jjgod.org/2011/07/01/is-cocoa-a-legacy-framework/
    reusFork
        15
    reusFork  
       2012 年 12 月 23 日
    @jiyinyiyong
    有。
    你说的这些算是“浏览器端”技术,而不仅仅是html。
    qt的优势就是它能做到很多浏览器做不到的事情
    jiyinyiyong
        16
    jiyinyiyong  
    OP
       2012 年 12 月 23 日
    @reusFork 就是说与操作系统本身的能力咯, 还有性能方面的. 了解
    0x0001
        17
    0x0001  
       2012 年 12 月 23 日 via Android
    首先这是b/s和c/s的区别
    浏览器限制很多,例如你想写个播放器,那么html的沙箱就无法访问到本地文件,现实例子就是Adobe发明了air。。。

    但html因为是b/s的,什么部署啊,升级啊,是优势。

    qt可以很简单地单机跑,而html单机就。。。比较麻烦,无论是开发还是部署

    同时html由于主要是js驱动的,浏览器渲染机制又有点那个,就算有webworker,开发起来也很烦,甚至无法满足要求。因为html就是为了文档发布而开发的
    jiyinyiyong
        18
    jiyinyiyong  
    OP
       2012 年 12 月 23 日
    @jjgod 好详细啊, 多谢多谢
    kevinzhow
        19
    kevinzhow  
       2012 年 12 月 23 日
    Qt还有个QML的哟
    thedevil5032
        20
    thedevil5032  
       2012 年 12 月 23 日
    歪楼..
    @reusFork 你也 Fork 自己了.. BTW, 圣诞的头像挺可爱.
    reusFork
        21
    reusFork  
       2012 年 12 月 24 日
    @thedevil5032 那个没钱了,sigh
    darkfall
        22
    darkfall  
       2012 年 12 月 24 日
    不喜欢qt的做法, 只因为可以用原本c++做到的特性硬要自己加一层改动
    但是跨平台desktop app的话又没多少选择
    至于html做桌面UI...那是扯谈... html5...笑
    jiyinyiyong
        23
    jiyinyiyong  
    OP
       2012 年 12 月 24 日
    @darkfall 那楼上做界面的时候会选用什么去做?
    cyberscorpio
        24
    cyberscorpio  
       2012 年 12 月 24 日
    @darkfall 笑啥呢, firefox 和 thunderbird 就是类似 html 的东西 (XUL) 做的哟。
    reusFork
        25
    reusFork  
       2012 年 12 月 24 日
    @cyberscorpio XUL那是xml,不是html
    cyberscorpio
        26
    cyberscorpio  
       2012 年 12 月 24 日
    @reusFork xul 和 html 使用同样的渲染引擎 (gecko),并且 xul 和 html 使用同样的技术 (Javascript, css)。
    darkfall
        27
    darkfall  
       2012 年 12 月 24 日
    @cyberscorpio 但他还是xml, 不是html. 只是一个基于gecko的ui markup language而已. XAML也是同样的原理. html作为UI的部分显示元素可以(例如Steam), Qt也能嵌html进去.
    darkfall
        28
    darkfall  
       2012 年 12 月 24 日   1
    @jiyinyiyong 看需求. 依赖于需求什么方便用什么. 在公司现在有html5界面需求在用CEF(Chromium Embedded Framework) + Native窗口(QtWebKit有点不满足需求). 自己的项目多倾向于Native UI(不喜欢Qt), 有时候wpf, winform, 有时候cocoa.
    cyberscorpio
        29
    cyberscorpio  
       2012 年 12 月 24 日
    @darkfall
    对 gecko 来说,html 不也 “只是一个基于gecko的ui markup language而已” 吗?
    所以 html5 的技术,完全可以用来完成楼主 “用来做图形界面” 的目标,比如,通过 XUL Runner。你对此有没有异议?
    darkfall
        30
    darkfall  
       2012 年 12 月 24 日
    @cyberscorpio 没有
    dcoder
        31
    dcoder  
       2013 年 1 月 23 日
    我一直好奇,为什么cross-platform GUI like Qt 之类,像Google之类的巨头公司都没兴趣,他们都喜欢使劲捣鼓“功能更弱的” web browser, 还搞出 Chrome OS 之类的东西。为什么 GUI 就这么不受待见呢?
    zhfsxtx
        32
    zhfsxtx  
       2013 年 1 月 23 日
    cef 界面渲染用JS+CSS+HTML5,数据处理用JS直接调用C++函数
    quake0day
        33
    quake0day  
       2013 年 1 月 23 日
    @dcoder 因为他们的目标就是不用让用户安装程序,一切都在浏览器上搞定。
    dcoder
        34
    dcoder  
       2013 年 1 月 23 日
    @quake0day 但是用户也需要安装 chrome app 呀。
    他们完全可以自己做一个 system (on top of windows / Mac), 有自己的GUI,比如叫 Google_GUI_system, 然后再在这个system上安装app, 岂不是更强?
    我想来想去,觉得就是因为Chrome打败了不争气的IE吧,Google是利用Chrome已有的优势而已。
    RisingV
        35
    RisingV  
       2013 年 1 月 23 日
    native和web的东西,本来就没啥好比的,不过看不惯的是,谈html,不准谈浏览器技术,真的狠扯淡
    yaolixing
        36
    yaolixing  
       2017 年 8 月 13 日 via Android
    他山界面开发框架 是一套基于 Gecko 的跨平台界面解决方案。可使用 xul, html(5), css(3), js 开发界面,支持 js, c++互调,发行包大小 13MB
    yaolixing
        37
    yaolixing  
       2017 年 12 月 17 日 via Android
    他山界面混合开发框架 OHUI 目前支持 xp,2003,win7,8,9,10+ 32/64 系统,支持 linux,android,支持 xul,xbl,html,css,js,c++/java 混合编程,嵌入 gecko v1.9~v52 引擎,html5,css3 支持程度可参考对应版本的 firefox,OHUI v22 Windows 版 13mb,linux 21mb,v45 android 23MB
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4084 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 01:16 PVG 09:16 LAX 17:16 JFK 20:16
    Do have faith in what you're doing.
    ubao msn 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