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

最近老板给安排了windows gui的项目需要开发,由于现在一般不想打开windows的机器(也不太方便),据说qt跨平台,不知道能不能完全在mac下开发,然后到windows下编译呢?或者有什么其他方案?

  •  
  •   ayang23 ·
    ayang23 · 2013-05-27 08:15:16 +08:00 · 16495 次点击
    这是一个创建于 3959 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2013-05-28 17:35:55 +08:00
    感谢各位提供建议,今天自己实验了下qt,发现qtcreater打开qt quick项目,点击设计按钮,mac下会直接卡死,win下虽不卡死,也显示不出设计的窗口元素来,感觉这个东西还不成熟,稳定性有待提高,看来只能再试试qt widget项目了,实在不行就用.net。
    第 2 条附言  ·  2013-05-29 11:27:46 +08:00
    终于弄好了,可以在mac下开发啦。谢谢各位老师指导。用qt。再请教一下各位,用qt开发,qtcreator 下直接写代码吗?还是用sublime写代码, qt creator调试?桌面软件建议使用qml吗?
    @jamiesun
    @standin000
    @missdeer
    @chchwy
    61 条回复    1970-01-01 08:00:00 +08:00
    ritksm
        1
    ritksm  
       2013-05-27 08:16:44 +08:00
    虚拟机
    Radeon
        2
    Radeon  
       2013-05-27 08:17:41 +08:00
    在想什么呢,用QT更折腾
    ayang23
        3
    ayang23  
    OP
       2013-05-27 08:29:17 +08:00
    @ritksm 虚拟机跑vs2010吗,估计会很烫,也不知道性能怎么样

    @Radeon 哪方面折腾?跨平台呢还是本身就很折腾?我现在用c++只用过wtl,开发的项目大概是图片列表,然后点开图片显示一些信息,通过opencv库从图片上提取一些特征显示出来,最后出个统计报表。根据你的经验,怎么弄效率高点?还是必须回windows开发?
    wog
        4
    wog  
       2013-05-27 08:30:25 +08:00
    Qt可以完全在mac下开发,然后到windows下编译
    leeyanjie
        5
    leeyanjie  
       2013-05-27 08:33:04 +08:00
    python+qt,用起来要简单一些,另外wxpython,pygtk也可以考虑下。
    thedevil5032
        6
    thedevil5032  
       2013-05-27 08:33:27 +08:00
    如果不限定语言,可以考虑 PyQt。 之前有 Linux 下用 PyQt 做好,再在 Win 下使用的经验。
    ayang23
        7
    ayang23  
    OP
       2013-05-27 08:50:20 +08:00
    @thedevil5032 因为开发出来的系统要给生产上用,需要考虑容易部署的因素,问一下pyqt做出来东西好不好打包?
    mozartgho
        8
    mozartgho  
       2013-05-27 08:55:20 +08:00
    @ayang23 "我现在用c++只用过wtl" wtl可以在mac上用?
    ayang23
        9
    ayang23  
    OP
       2013-05-27 08:59:55 +08:00
    @mozartgho 误会,我指的是以前用过vs+wtl开发。所以现在想换个框架。
    Radeon
        10
    Radeon  
       2013-05-27 09:01:23 +08:00
    @ayang23 跨平台当然折腾了。老老实实用Winform去完成工作不好么,不要浪费时间在跨平台上。
    thedevil5032
        11
    thedevil5032  
       2013-05-27 09:07:06 +08:00
    @ayang23 因为用的 Python3 ,所以当时我打包用的 cz_freeze,用起来挺容易的。
    Ricepig
        12
    Ricepig  
       2013-05-27 09:21:02 +08:00 via iPhone
    老实用windows,否则有你折腾的,所有跨平台的语言框架都是一次编程到处调试
    missdeer
        13
    missdeer  
       2013-05-27 09:25:29 +08:00
    Qt没啥大问题,多数常见的编程需求它都提供了封装。上面那些说折腾的,不知道有没有认真用过Qt。
    inconsole
        14
    inconsole  
       2013-05-27 09:30:33 +08:00 via iPhone
    跟楼主一样的遭遇。win下只会wtl,现在有个更大的问题,就是win下程序界面的问题。这玩意好难搞
    现在的设想是用pyqt,加载webkit,再上面跑html5,解决界面美化的问题。不知道这个方案可行么;另外pyqt写的程序会不会很大,和c++好交互么。请教
    batfree
        15
    batfree  
       2013-05-27 09:33:29 +08:00
    写Windows下的程序就用Windows吧。 再跨平台,如果你自己都不用,还有什么意思。 在Mac上写Windows程序就像在纸上写程序差不多。你觉得靠谱吗?
    RisingV
        16
    RisingV  
       2013-05-27 09:35:59 +08:00   ❤️ 2
    对于速度要求不高的话,java swing、swt/jface皆可。至少我还没遇到跨平台问题。
    thai9quohs6jae1C
        17
    thai9quohs6jae1C  
       2013-05-27 09:40:06 +08:00
    Java +1
    ayang23
        18
    ayang23  
    OP
       2013-05-27 09:53:59 +08:00
    @inconsole 同道中人,真的不想玩ms的.net那一坨一坨的东西,本来现在做win下的东西就不多,.net进化的太快,估计这个项目学会了,下个项目就用不上了。所以从05年到现在一直坚持wtl,连mfc都不想碰。
    @batfree 是有些心虚,所以先在这请教一下再决定。我自己不用那是一定的,这是一个行业应用的项目。

    @thai9quohs6jae1C
    @RisingV java也不错,但估计部署是个麻烦,还有我要用到一些c库,比如opencv是必须的。
    jamiesun
        19
    jamiesun  
       2013-05-27 09:55:28 +08:00   ❤️ 5
    了解qt吗,只要你不是开发过程中要调用win32api,有什么问题呢。不管是qt c++,还是pyqt,还有qtqucik呢。

    QT做界面还弱吗,完全可以用类css样式做到任何绚丽的效果,完全的界面与逻辑分离,还不够吗。

    Qt的新版本已经对html5封装做了最大优化,新加入的V8引擎更是如虎添翼。


    几年前做了一个googlereader的客户端,运行在symbian,linux,windows上毫无问题,开发环境更是不挑剔。

    https://code.google.com/p/r2-release/
    Ricepig
        20
    Ricepig  
       2013-05-27 10:00:12 +08:00
    @ayang23 我表示,无论wtl还是mfc,均与.net木有关系。

    另外,虽然.net rich client技术进化了,但是winform还是一直坚挺啊,娃哈哈哈哈
    ayang23
        21
    ayang23  
    OP
       2013-05-27 10:00:40 +08:00
    @missdeer
    @jamiesun 给力!qt5貌似现在没什么学习资料,求推荐本书吧
    ayang23
        22
    ayang23  
    OP
       2013-05-27 10:05:04 +08:00
    @Ricepig 恩,看来这个也可以研究一下。c#语言据说不错,wpf前景怎么样呢,xp下能不能部署?
    inconsole
        23
    inconsole  
       2013-05-27 10:08:45 +08:00
    @Ricepig 主要是拖个N大的framework很讨厌,
    jamiesun
        24
    jamiesun  
       2013-05-27 10:11:54 +08:00
    @ayang23 主要还是看官方的参考文档和demo了,书籍啥的目前都跟不上
    ForgotFun
        25
    ForgotFun  
       2013-05-27 10:26:32 +08:00
    lbsunix
        26
    lbsunix  
       2013-05-27 10:27:08 +08:00   ❤️ 1
    1、Qt做界面绝对给力,Linux/Mac OS/Windows亲测流畅
    2、用QML轻松修改主题,懂CSS就懂QML
    3、Qt5刚出没多久,目前只能零碎的看一些技术博客,建议用4.8.4稳定一些
    kingwkb
        27
    kingwkb  
       2013-05-27 10:47:00 +08:00
    @jamiesun
    @lbsunix
    我之前折腾一晚上Mac QT,还是没安装成功
    shanks
        28
    shanks  
       2013-05-27 11:04:28 +08:00
    用Qt C++做个几个小项目,感觉还是相当好用的一个UI框架,而且自带不少特性,跨平台方面不需要担心,只要没使用到系统调用一般没问题吧。
    kshatriya
        29
    kshatriya  
       2013-05-27 11:20:37 +08:00
    项目需要什么 你就上什么
    pomelowu
        30
    pomelowu  
       2013-05-27 11:26:33 +08:00
    wxWidgets 也是一個選擇。另外,qt5.0其實比較穩定了,可以直接上手。
    Winny
        31
    Winny  
       2013-05-27 11:30:03 +08:00
    如果界面要求不高 程序不复杂 经典的C#(WinForm)快速解决,(实在讨厌Windows可以在OSX下用mono,但是IDE没有VS2012好用)

    如果程序比较复杂对性能有要求,那VC++之类的吧 但是总体就复杂了。
    ritksm
        32
    ritksm  
       2013-05-27 11:34:19 +08:00
    @ayang23 我觉得。。。如果是。。。工作上的安排。。。最高效率完成就行了。。。如果你自己也感兴趣。。。那么在deadline之前研究研究也未尝不可。。。

    虚拟机还好。我现在rmbp夏天没空调情况下,风扇3-4k转,温度70左右。当然编译的时候我就不晓得了,温度上去是必然的。
    chchwy
        33
    chchwy  
       2013-05-27 11:39:07 +08:00
    我自己的Qt經驗,Mac開發,Windows編譯是完全可行的。重點是用Qt就用全套,像字符串就用QString,文件就用QFile,完全捨棄本地平台的API。

    求穩定的話就用Qt4.8.4這個版本,我的公司項目也還未打算升上Qt5。

    然後有一點提醒--PyQt是GPL,意味著一旦用了,整個項目就要開源,我估計大多數的商業項目都不可能開源的。
    eickegao
        34
    eickegao  
       2013-05-27 12:07:41 +08:00
    用QT完全是自虐。除非你是QT方面高手。最简单的方法是C#+WinForm。拖几个控件上去就可以了。如果东西不复杂我感觉1小时就可以搞定。
    eickegao
        35
    eickegao  
       2013-05-27 12:10:19 +08:00
    @ayang23 你搜一下C#的类似解决方案。我感觉你的需求在很多网站上都应该有现成的例子。

    我帮你找了一个你看是否符合你的要求吗?http://www.codeproject.com/Articles/20424/Image-Viewer-Control-in-C
    likuku
        36
    likuku  
       2013-05-27 12:50:17 +08:00
    dropbox 的桌面客户端(mac,win,lin) 就是QT的嘛。
    missdeer
        37
    missdeer  
       2013-05-27 12:56:04 +08:00
    Qt用Qt Creator也能拖控件,从IDE角度讲,确实不如VS那么强大好用,但也勉强够用,VS那个巨无霸慢吞吞,机器配置不够的直接虐到死。
    说用Qt需要学习成本的,难道其他方案不用学了?LZ有C++经验的用Qt顶多学下框架,用WinForm的除了类库还得学语言。
    evanmeng
        38
    evanmeng  
       2013-05-27 14:18:46 +08:00
    我只说一句:这是你的工作。
    RelativeLayout
        39
    RelativeLayout  
       2013-05-27 14:44:54 +08:00
    Python kivy http://kivy.org/
    skywinger
        40
    skywinger  
       2013-05-27 15:46:51 +08:00
    老板让你用什么,你就老老实实用什么,除非你自个是老板,乱出点子的,对他无益。
    liwei
        41
    liwei  
       2013-05-27 15:52:04 +08:00
    我觉得java比较靠谱。
    railgun
        42
    railgun  
       2013-05-27 16:21:04 +08:00
    还是要在windows下开发吧,UAC什么的,都要调试了才知道。
    不可能没有需要在windows下debug的时候。
    我觉得最接近生产环境的开发环境才是最好的。
    inSeek
        43
    inSeek  
       2013-05-27 17:02:28 +08:00
    还是觉得Win下就Win下开发。开发环境和运行环境统一才是王道。不然到时候万一出问题...苦的是自己。
    拿人工资的事情还是抛去些自己的坚持的好... 直到彻底牛逼了...
    ayang23
        44
    ayang23  
    OP
       2013-05-27 17:29:23 +08:00
    @evanmeng
    @skywinger
    @railgun
    @inSeek 感谢提醒。虽然是老板安排,自己也得考虑下一步走什么路子。因为类似的项目以后还会有,学习成本我还是可以接受的。老板对技术没要求,自己选择好的框架是为了将来少走弯路,现在小折腾,将来不折腾。以前类似的项目都是wtl搞定,现在觉得wtl在界面布局方面有些弱,还有就是自己一般用mac,不想在windows上面花时间了。不想为了这些项目单独去开机。uac之类的东西估计也用不到,只用一般的界面功能,剩下的都是opencv库搞定。
    ldehai
        45
    ldehai  
       2013-05-27 19:38:18 +08:00
    建议virtualbox跑虚拟机,xp或win2003,占用资源少.开发用vc6,效率高
    leeyanjie
        46
    leeyanjie  
       2013-05-27 20:02:15 +08:00
    @chchwy
    pyqt有GPL和商业两种协议。不过小东西买授权可能不划算。可以考虑用pyside,支持LGPL 。
    不过版本比pyqt旧一些,做传统GUI程序一般够用了。
    Ricepig
        47
    Ricepig  
       2013-05-27 21:39:32 +08:00 via iPhone
    @inconsole .net framework 2.0y一共23m,从server2003开始内置于操作系统中,大吗?
    Ricepig
        48
    Ricepig  
       2013-05-27 21:40:43 +08:00 via iPhone
    @ayang23 wpf前景不好说,目前唯一广为人知的wpf项目只有visualstudio
    LokiSharp
        49
    LokiSharp  
       2013-05-27 21:52:23 +08:00
    这种情况下还是Bootcamp吧,虚拟机的话不但发烫而且特别慢
    avatasia
        50
    avatasia  
       2013-05-27 22:05:30 +08:00
    FLEX, 想效果好就用自动桌的scaleform

    @Ricepig WPF的项目,你可以看下github的客户端,他们的blog有他们的开发流程,界面是用Blend搭的。
    n
        51
    n  
       2013-05-27 23:26:00 +08:00 via iPhone   ❤️ 1
    node-webkit
    zyyzj
        52
    zyyzj  
       2013-05-28 09:37:48 +08:00   ❤️ 1
    以前我用qt开发时干过几次类似的事,mac开发windows编译。
    经验:
    1,如chchwy说,使用全套的qt,特别是各种基础类,像字符串,文件什么的。
    2,不要使用[mac开发window编译]这种方式,各种文件编码,字符串转换,配置文件路径等等会占用你许多不必要的时间。
    standin000
        53
    standin000  
       2013-05-28 23:15:53 +08:00
    我在Windows和Linux下都用过Qt Creator,没问题啊。标准IDE,创建工程,修改所见即所得界面。已经没有qt designer了吧。
    lancy1014
        54
    lancy1014  
       2013-05-28 23:30:24 +08:00
    (我觉得我会辞职。。。。是不是我太年轻了。。
    clowwindy
        55
    clowwindy  
       2013-05-29 00:17:32 +08:00
    尝试了一下 node-webkit,真的很舒服。就是库比较大,压缩后有二十几 MB。
    greatghoul
        56
    greatghoul  
       2013-05-29 11:51:40 +08:00
    @clowwindy node-webkit 的确不错。
    yaotian
        57
    yaotian  
       2013-05-29 12:05:07 +08:00
    @clowwindy 能用在实际项目上吗?
    lingshang
        58
    lingshang  
       2013-05-29 12:12:59 +08:00   ❤️ 1
    我觉得qtcreator 下直接写代码就可以,也可以和sublime结合起来用,看自己喜欢吧。桌面软件也可以使用qml的,不过你最好先看看官方的QML sample,如果类似你的需要,那最好了,否则也要先提前研究下你需要的功能是否容易实现。
    yaotian
        60
    yaotian  
       2013-05-29 17:46:46 +08:00
    @clowwindy 运行你的程序,你还需要 nw.exe / node-webkit.app / nw

    这不是正常的发布程序吧?
    clowwindy
        61
    clowwindy  
       2013-05-29 21:04:27 +08:00 via iPhone
    @yaotian 实际还要打包,合并文件,改图标什么的,我就只是打包一下,其它懒得弄了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2827 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:15 · PVG 21:15 · LAX 06:15 · JFK 09:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.