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

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

  •  
  •   jiyinyiyong ·
    jiyinyiyong · 2012-12-23 14:19:50 +08:00 · 32081 次点击
    这是一个创建于 4351 天前的主题,其中的信息可能已经有所发展或是发生改变。
    帖子是一个 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 14:23:34 +08:00
    当然是qt。html能做的qt也能做,qt能做的html未必能做。虽然两个东西一个是框架一个是标记语言,用来比较本来就不太公平…
    logicthink
        2
    logicthink  
       2012-12-23 14:37:22 +08:00
    HTML,直接Web操作系统层次解决方式。Qt没什么意义,源自C++那些淘汰的一坨。
    Js
        3
    Js  
       2012-12-23 14:39:05 +08:00
    关键是扩展性, gecko,qtwebkit都有一堆重型应用
    tux
        4
    tux  
       2012-12-23 16:37:22 +08:00
    简单的才是强大的
    jiyinyiyong
        5
    jiyinyiyong  
    OP
       2012-12-23 16:57:10 +08:00
    @reusFork 能给具体一些例子不?
    binux
        6
    binux  
       2012-12-23 17:06:52 +08:00
    如果从应用层面考虑,Qt能直接操作到系统API,当然是Qt强了。
    但是从这两个东西本身,用的都是它预先提供的样式、交互罢了。如果它没提供那就没办法,如果你自己去调系统的API实现,那又和Qt没有什么关系。没有谁“更先进, 那个更强大”一说
    Narcissu5
        7
    Narcissu5  
       2012-12-23 17:16:38 +08:00
    难怪有人跟我说HTML5教惹不起,什么时候连C++都被淘汰了。。
    reusFork
        8
    reusFork  
       2012-12-23 18:09:27 +08:00
    @jiyinyiyong 比如html5的canvas、媒体播放、storage之类特性,qt天生就有了,浏览器环境的发展只是在跟随桌面环境的发展。qt也能直接调用webkit之类渲染引擎,但反过来就不行,webkit不能调用本地系统的api比如qt
    reusFork
        9
    reusFork  
       2012-12-23 18:14:58 +08:00
    @logicthink 主流的渲染引擎都是c++写的,js引擎也是,c++还远未到淘汰的时候。何况,要做qt开发,完全可以不用c++,有很多语言都有qt的binding。
    jiyinyiyong
        10
    jiyinyiyong  
    OP
       2012-12-23 18:15:16 +08:00
    @reusFork 那是说这些事情 HTML5 能做, 但是做不好或者不方便咯
    reusFork
        11
    reusFork  
       2012-12-23 18:26:47 +08:00
    @jiyinyiyong 好不好或者方便不方便这些都是主观的判断,没必要作吧。总之浏览器是个很受限的环境,如果你想做的事情能在浏览器上实现那就用,不能那就不用(或者也可以借助flash之类的环境)
    tioover
        12
    tioover  
       2012-12-23 18:42:01 +08:00 via Android
    美工更重要
    另外qt能嵌入html的
    jiyinyiyong
        13
    jiyinyiyong  
    OP
       2012-12-23 19:04:41 +08:00
    @reusFork 我的意思是有没有必须要用 Qt 才能做的
    HTML 现在技术有点乱, 又是 Node 又是文件 API 又是前端 MVC,
    .. 架一个服务端来模拟 TCP 的技术都出现了...
    结果很多功能原先纯网页除非 Flash 都不用想的现在不怕麻烦也能做出来了
    那么 Qt 的优势是在哪里?
    jjgod
        14
    jjgod  
       2012-12-23 19:12:43 +08:00   ❤️ 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 19:26:56 +08:00
    @jiyinyiyong
    有。
    你说的这些算是“浏览器端”技术,而不仅仅是html。
    qt的优势就是它能做到很多浏览器做不到的事情
    jiyinyiyong
        16
    jiyinyiyong  
    OP
       2012-12-23 20:05:20 +08:00
    @reusFork 就是说与操作系统本身的能力咯, 还有性能方面的. 了解
    0x0001
        17
    0x0001  
       2012-12-23 20:12:47 +08:00 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 20:20:28 +08:00
    @jjgod 好详细啊, 多谢多谢
    kevinzhow
        19
    kevinzhow  
       2012-12-23 23:12:53 +08:00
    Qt还有个QML的哟
    thedevil5032
        20
    thedevil5032  
       2012-12-23 23:42:07 +08:00
    歪楼..
    @reusFork 你也 Fork 自己了.. BTW, 圣诞的头像挺可爱.
    reusFork
        21
    reusFork  
       2012-12-24 00:06:57 +08:00
    @thedevil5032 那个没钱了,sigh
    darkfall
        22
    darkfall  
       2012-12-24 07:45:21 +08:00
    不喜欢qt的做法, 只因为可以用原本c++做到的特性硬要自己加一层改动
    但是跨平台desktop app的话又没多少选择
    至于html做桌面UI...那是扯谈... html5...笑
    jiyinyiyong
        23
    jiyinyiyong  
    OP
       2012-12-24 08:29:46 +08:00
    @darkfall 那楼上做界面的时候会选用什么去做?
    cyberscorpio
        24
    cyberscorpio  
       2012-12-24 10:20:31 +08:00
    @darkfall 笑啥呢, firefox 和 thunderbird 就是类似 html 的东西 (XUL) 做的哟。
    reusFork
        25
    reusFork  
       2012-12-24 10:31:51 +08:00
    @cyberscorpio XUL那是xml,不是html
    cyberscorpio
        26
    cyberscorpio  
       2012-12-24 10:59:00 +08:00
    @reusFork xul 和 html 使用同样的渲染引擎 (gecko),并且 xul 和 html 使用同样的技术 (javascript, css)。
    darkfall
        27
    darkfall  
       2012-12-24 11:28:40 +08:00
    @cyberscorpio 但他还是xml, 不是html. 只是一个基于gecko的ui markup language而已. XAML也是同样的原理. html作为UI的部分显示元素可以(例如Steam), Qt也能嵌html进去.
    darkfall
        28
    darkfall  
       2012-12-24 11:31:32 +08:00   ❤️ 1
    @jiyinyiyong 看需求. 依赖于需求什么方便用什么. 在公司现在有html5界面需求在用CEF(Chromium Embedded Framework) + Native窗口(QtWebKit有点不满足需求). 自己的项目多倾向于Native UI(不喜欢Qt), 有时候wpf, winform, 有时候cocoa.
    cyberscorpio
        29
    cyberscorpio  
       2012-12-24 11:50:48 +08:00
    @darkfall
    对 gecko 来说,html 不也 “只是一个基于gecko的ui markup language而已” 吗?
    所以 html5 的技术,完全可以用来完成楼主 “用来做图形界面” 的目标,比如,通过 XUL Runner。你对此有没有异议?
    darkfall
        30
    darkfall  
       2012-12-24 12:59:14 +08:00
    @cyberscorpio 没有
    dcoder
        31
    dcoder  
       2013-01-23 00:02:41 +08:00
    我一直好奇,为什么cross-platform GUI like Qt 之类,像Google之类的巨头公司都没兴趣,他们都喜欢使劲捣鼓“功能更弱的” web browser, 还搞出 Chrome OS 之类的东西。为什么 GUI 就这么不受待见呢?
    zhfsxtx
        32
    zhfsxtx  
       2013-01-23 00:43:04 +08:00
    cef 界面渲染用JS+CSS+HTML5,数据处理用JS直接调用C++函数
    quake0day
        33
    quake0day  
       2013-01-23 08:37:24 +08:00
    @dcoder 因为他们的目标就是不用让用户安装程序,一切都在浏览器上搞定。
    dcoder
        34
    dcoder  
       2013-01-23 09:06:18 +08:00
    @quake0day 但是用户也需要安装 chrome app 呀。
    他们完全可以自己做一个 system (on top of windows / Mac), 有自己的GUI,比如叫 Google_GUI_system, 然后再在这个system上安装app, 岂不是更强?
    我想来想去,觉得就是因为Chrome打败了不争气的IE吧,Google是利用Chrome已有的优势而已。
    RisingV
        35
    RisingV  
       2013-01-23 09:19:10 +08:00
    native和web的东西,本来就没啥好比的,不过看不惯的是,谈html,不准谈浏览器技术,真的狠扯淡
    yaolixing
        36
    yaolixing  
       2017-08-13 08:45:43 +08:00 via Android
    他山界面开发框架 是一套基于 Gecko 的跨平台界面解决方案。可使用 xul, html(5), css(3), js 开发界面,支持 js, c++互调,发行包大小 13MB
    yaolixing
        37
    yaolixing  
       2017-12-17 03:46:33 +08:00 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   ·   实用小工具   ·   1033 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:41 · PVG 03:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.