精华内容
下载资源
问答
  • 大部分公司都走向了移动,web,小程序的热潮,C++ Qt/MFC客户端开发岗位逐渐减少,但并没有消失。   本文主要回答标题的问题,C++ Qt/MFC客户端开发还有前途吗?我的答案是:PC客户端开发仍然有前途,任然有岗位...

      C++ 客户端开发在2010年之前应该还是挺流行的,自从移动端,web兴起之后,PC客户端开发就逐渐走下坡路了,甚至很多语言、框架都消失了,退出了企业的招聘舞台,像VB就是鲜明的例子。大部分公司都走向了移动,web,小程序的热潮,C++ Qt/MFC客户端开发岗位逐渐减少,但并没有消失。
      本文主要回答标题的问题,C++ Qt/MFC客户端开发还有前途吗?我的答案是:PC客户端开发仍然有前途,任然有岗位需求。
      下面我就慢慢给大家讲解分析。

    一 客户端应用领域

    1 商业软件

      由于电脑办公的便利以及其它特点,从目前的PC客户端来看,一些大厂仍然有pc端项目,例如:
      金山:WPS项目,这是Qt/QML的集大成开发,应该是国内Qt用的最好的公司,而且还有很多社招岗位,但是想进去应该有不小的难度,很多985/211的不屑与做这种客户端项目,更不屑与做Qt开发,大部分都做AI、算法、java、 python之类的岗位了。普通一本、二本、专科的就有一定的机会进入该项目组,但是你得技术过硬,想混过去是不可能的。
      斗鱼:斗鱼直播的PC客户端也是Qt开发的,当然你得会一些音视频知识,OBS得用用,源码找点时间去调试一把。
      中望CAD: 为了跨平台,Qt是很好的选择
      优酷:PC端优酷界面是Qt/QML开发的
      爱奇艺:这个界面可能是DuiLib做的
      字节跳动:飞书,剪映,都有Qt/QML的参与
      腾讯:腾讯会议ImGUI,腾讯视频DirectUI
      大部分的视频监控客户端, 以及中小型公司,仍然会选择Qt作为界面开发首选,还可以跨平台,移植到linux, deepin, UOS,mac等。

    2 嵌入式

      在嵌入式领域,Qt作为界面开发利器,是不二选择。

    3 工控领域

       在招聘网站上,大家可以去看看,一些工控软件,医疗软件,CAD软件,也会选择Qt最为界面框架。

    4 游戏

      PC游戏可以说是客户端开发最为成熟和吸金的地方,当然也有很多游戏框架,cocos2dx, unity3d, unreal等,或者直接用Qt, MFC等原生框架直接写。

    5 金融交易平台

      为了高稳定性,用C++界面库来写交易平台应该没什么争议。

    二 其它C++界面框架

      C++除了Qt, 还有其它界面框架,例如MFC, DuiLib, Soui, ImGUI, 各种DirectUI等。

    MFC

      例如,福昕PDF用的是MFC, 当然,他们应该有借用BCG, 这种界面不太复杂,相对于视频客户端,没有花里胡啥的动画切换操作,用MFC可以解决。但是现在新项目用MFC是在太少了,难用,也没有多少人愿意使用MFC.
      那么MFC还需要学习吗,如果公司的老项目还在用,你得去学学,网上的教程也挺多,一般界面部分应该不会改动的太多,业务逻辑可能要改。如果没有这种项目,那么就别学MFC了,基本很少会用得到。

    ImGUI

      腾讯会议用的是ImGUI, 大家有兴趣可以去github找找ImGUI体验一下,这个可以跨平台,有OpenGL和DX两种渲染方式, ImGUI对高分屏的支持也很好,不用程序员去处理,像Qt, MFC这种,对高分屏还得自己用矢量图,改变控件大小的方式去自适应4K, 2K屏幕。

    SOUI

      Soui在一些小众软件中也有不小的应用,但是不能跨平台,很遗憾,soui的前身是金山带出来,具体历史我也不清楚。

    DuiLib

      DuiLib的应用应该还是挺广的,微信,钉钉等项目都有用到,可以自己魔改UI,开源免费,但是不幸的是也不能跨平台。

    三、微软C# .Net

      相对于C++,在windows上开发客户端应用,个人最推荐的还是C#技术栈,winform和WPF, 最好的还是WPF, 只要微软不倒,C#还有用武之地,毕竟C# .Net可以前后端通吃。
       用winform和WPF开发桌面应用,可以只用C#,还可以用C/C++来参与,核心功能可以让C/C++来做,封装成SDK供C#调用,避免了反编译源码泄漏的风险。
      用WPF可以不用担心高分屏带来的界面控件适配问题,相比于MFC, DuiLib,Soui等方便很多,而且C#是写起来最舒服的语言。
      如果不考虑跨平台,相信很多公司还是很愿意采用C#来写客户端,开发便利快捷。

    四 前端PC界面框架

      PC端软件除了用C++/C#,还可以用web前端的技术来实现,例如Vue, electron这种,套壳打包成exe应用,开发效率也是不错的。但是如何涉及到一些和C++交互的问题,那就麻烦了,当然用node.js还是可以解决的,只是开发人员需要多学习一些技术,企业的招聘要求略高。如果只是一些企业级的增删改查应用,用Vue或electron进行还是很不错的。

    五、客户端开发需要学习哪些技术

      如果想从事客户端开发岗位,光学习界面库Qt, MFC等,显然是不行的,这是C++前端和web前端的区别。web前端开发人员只需要掌握html、css,、js、vue、react等框架,堆好界面,和后端接口交互,增删改查等,那么基本就可以搞完一个项目。那么C++前端(客户端)开发者该学习哪些技术呢?
      客户端,主要是显示,界面交互,例如数值。图形,视频,图表,曲线的显示等。
      数据从哪里来?硬件设备,网络,数据库,其它程序;如果是从硬件设备,那么需要学习对应的通讯协议;如果是网络,那么基本的网络编程是必不可少的tcp, udp, rtmp, https等;如果数据库,那么和数据的交互你得会吧,数据库连接,curd等;如果是其它程序,多线程,多进程这种得知道的;还有就是后台http接口,libcurl之类的技术得清楚。
      图形的显示,如果是三维图形,点云数据等,那么需要的专业知识还是挺多的,OpenGL, OPenCV, PCL等,在下也没做过类似的项目。
      如果显示视频,声音,基本的音视频常识得知道的吧。
      可见作为一个合格的C++客户端开发,不是简单的会C++/Qt/MFC就可以,会涉及到很多领域,在求职就业时,选择自己感兴趣的,一直深挖,同时,其它技术也得学学,防止内卷。
      以上是界面显示的内容,关于客户端开发,还有很多,就说Qt的跨平台,在windows, mac, linux想做到一码多用,界面的适配也是不小的工作量,涉及到重型应用,还得有GPU相关的开发,例如cuda, dx等。
      吾生有涯,而学无涯。
      只要PC还在,客户端开发仍有岗位,只是没有web, 移动端开发,后台那么多岗位。

    展开全文
  • 如题,求指点 谢谢.。。。。
  • Qt类似MFC,也是一个SDK开发包,他的优势是跨平台。Qt很接近原生态的C++,语法简捷明了。在嵌入式开发还是比较有优势的。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很...

    Qt类似MFC,也是一个SDK开发包,他的优势是跨平台。Qt很接近原生态的C++,语法简捷明了。在嵌入式开发还是比较有优势的。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

    QT5.2新版本的安装教程还很少,和之前诺基亚提供的版本安装方法有些不同,今天就记录一下安装过程吧。大家不要再按照5.2版本以前的方法搭建平台了。

    下载安装:

    1、首先下载QT安装包和QT插件。

    由于诺基亚已经放弃了QT,所以,现在的QT官网为:http://qt-project.org(里面有很多文档,可以学习)

    QT安装包和QT插件下载链接:http://qt-project.org/downloads


    上图所示的是各个版本的QT5.3.2的安装包。因为我是64位,win7,所以选择的倒数第四个(倒数第三个也一样,只是不支持OpenGL)

    然后在页面的other download下会有相应插件的下载。


    我选的是第二个。

    2、下载好后傻瓜式安装就可以。这里不介绍。

    注意的是安装路径:不要包含中文、空格、特殊字符(~<>|?*!@#$%^&:,;),英文路径即可。

    安装后打开VS2013,发现在工具栏出现qt5的选项。


    现在还需要配置相应的其他版本。操作步骤看图:


    选 Qt Options

        

    点Add添加你的msvc2013_64_opengl文件,添加完点ok就可以了。






    展开全文
  • 选择QT Creator还是VC + qt addin

    千次阅读 2017-12-04 14:41:14
    闲话少说,用qt做开发时该选择QT Creator还是VC + qt addin,网上众说纷纭,让人无所适从。自己摸索了一段时间之后,答案也逐渐清晰。插一句,开始选方案时因为不想新东西了,还倾向于 mfc+duilib,用了个一...
    兜兜转转又要做界面了,其实做jni开发也很无聊,调试起来太不爽了。
    闲话少说,用qt做开发时该选择QT Creator还是VC + qt addin,网上众说纷纭,让人无所适从。自己摸索了一段时间之后,答案也逐渐清晰。插一句,开始选方案时因为不想学新东西了,还倾向于


    mfc+duilib,用了个一个月的qt之后,庆幸没有抱残守缺,彻底抛弃mfc真是太明智了。
    如果只是做界面,毫无疑问要用qt creator,用vc + qt addin有各种不便:不能很方便的使用信号和槽,用stylesheet的时候(比如做三态图片按钮)更是各种不便,甚至做不到。
    但是windows下难免要用到只有在vc下才能构建的项目(比如一些大型的开源项目、公司的一些老项目),这时候该怎么办呢?我开始还想着先在qt creator下面把界面部分做完,然后用项目转换命令


    把qt creator的项目转化成vc下的项目,然后再配合那些只有在vc下才能构建的项目进一步开发。结果发现这么做实在有太多的不方便,一旦界面有大的改动,就要转换一次项目,而转换出来的项目又


    要手动修正。最后还是换了个办法,把那些只有在vc下才能构建的项目封装成dll,然后在qt creator下使用,这样开发才是最方便的。


    一些经验:
    1)qt的安装,最简单的就是下载qt-unified-windows-x86-3.0.1-online之后,运行它,边下载边安装。否则自己选择安装包来装的话,经常导致各种问题,比如装好后无法用调试功能等等。
    2)如果vs2008用自定义安装方式只安装vc的话,qt装上之后就无法启动vs2008,一启动就崩溃
    3)用mingw则下载针对mingw的安装包,用vs则下载针对vs的包
    4)vs下使用信号和槽需要自己添加slots,然后在designer中按f4键,进入signal/slot编辑模式,然后选中按钮,拖动,在空白处释放鼠标,就会弹出slot选择对话框
    5)qt creator菜单:选项-环境-键盘 中可以自定义快捷键
    6)qt生成vs工程所使用的命令:
        qmake -spec win32-msvc2008 -tip vc myproject.pro
    7)vc编译的程序要用qt目录下的msvc2010\bin下的dll,要在win7的path中增加该路径。
    8)转换出来的项目会在预处理中加入UNICODE宏,如果要去掉可在vc项目属性中的预处理里把这个宏去掉。
       如果不想在Makefile.Debug中自动添加UNICODE宏,需要修改qt的mingw47_32\mkspecs\win32-g++下的qmake.conf
    9)qt creator生成的makefile在 $MYPRJ_DIR\..\build-myproject-Desktop_Qt_5_0_2MinGW_32bit-Debug中,重新构建项目并不会更新它,想重新生成Makefile,可以删除它再rebuild
    10)看qt creator的编译输出,可知qt creator和mingw配合使用时用的spec是win32-g++
    11)多语言支持可参考 blog.csdn.net/houqd2012/article/details/37660589
    12)Qt实现自定义按钮的三态效果:https://www.cnblogs.com/emouse/archive/2013/07/14/3189319.html
        用了这个之后才知道用qt做界面有多简单
    13)mingw无法使用vc编译的静态库,在mingw下使用dll的方法


    三个测试文件 mydll.h mydll.c test.c
    /* 
      author : ez 
      date : 2015/7/9 
    */  
      
    #ifndef _MY_DLL_H  
    #   define _MY_DLL_H_  
      
    #ifdef __cplusplus  
    extern "C" {  
    #endif  
      
    extern __declspec (dllexport) int add_range (int, int);  
    extern __declspec (dllexport) double average (int*, int);  
      
    #ifdef __cplusplus  
    }  
    #endif  
      
      
    #endif // ~_MY_DLL_H_ 
















    #include "mydll.h"  
      
    // __declspec (dllexport)   
    int add_range (int _sta, int _end) {  
          
        int res = 0;  
        if (_sta > _end)  
            return 0x7fffffff;  
        for (; _sta != _end; _sta ++) {  
            res += _sta;  
        }  
        return res;  
          
    }  
      
    // __declspec (dllexport)  
    double average (int* _arr, int _cnt) {  
        double res = 0.0;  
        int i = 0;  
        if (_cnt <= 0)  
            return (double) (~0);  
        for (; i < _cnt; i ++)  
            res += _arr [i];  
        return (double) (res /= _cnt);  
    }  










    /* 
      author : ez 
      date : 2015/7/9 
    */  
      
    #include <stdio.h>  
    #include "mydll.h"  
      
    int main (int argc, char* argv []) {  
          
        int res = add_range (10, 200);  
        printf ("%d\n", res);  
        return 0;  
    }  


    编译命令
    mingw32-gcc -m32 -c mydll.c
    mingw32-gcc -m32 -shared -o mydll.dll mydll.o
    mingw32-gcc -m32  -o test   test.c  mydll.dll


    14)在qt creator中使用vc编译出来的dll
        a)把mydll.lib和mydll.dll放到同一个目录,比如c:\
        b)右键点击qt creator中的项目,选择菜单  添加库-外部库, 把mydll.lib加入工程。此举将更改.pro文件
        c)手动编辑.pro文件,把-lmydll改成 -m32 c:/mydll.dll。


    至此,做界面的可以和MFC说bye bye了。
    展开全文
  • 有了Qt,从此再也不用MFC~

    万次阅读 2010-06-05 23:38:00
    Qt这个东西算下来也用了3个多月了~,一个感觉,爽!这才是真正的C++程序员该做的东西。(很向往了一阵这种纯软件公司,后来一看要去芬兰工作,还是算了)。界面库封装的强大的无可挑剔(感觉有点抄Win32 GDI的...

    Qt这个东西算下来也用了3个多月了~,一个感觉,爽!这才是真正的C++程序员该做的东西。(很向往了一阵这种纯软件公司,后来一看要去芬兰工作,还是算了)。界面库封装的强大的无可挑剔(感觉有点抄Win32 GDI的架构,不过MS也是抄别人的,管那么多,好用就行)。开发出的界面无比华丽,代码无比的少,速度无比的快,好久没有这种写完界面还会偷笑的感觉了。更主要是人家是开源的,他们的好办法可以拿过来借鉴学习。MFC虽然也是开源,但是相对来说,用起来太费劲了。记得还在上学的时候需要一个能自定义颜色的ListControl,硬是憋了我一个星期才从CListControl给憋出来,太TMD恶心了。还有那个WM_OWNERDRAW,感觉就是MS不诚心给你用,基本没什么文档,能实现的功能也是少之又少,唉,要不就找别人的代码改,要不就花时间自己继承MFC的类了。

     

    Qt比起来真是强得太多了,人家的控件都是自己用GDI从底层画出来的,不像MFC的控件,是封装好的DLL,打死你也不知道人家怎么实现的。而且Qt的类感觉设计的时候就是要让你拿来继承的,MFC的类感觉就是给你你用就行了,大家都写成复古的标准界面,像绿霸那样;'(

     

    说点实际的吧~Qt是好用,可是怎么才能让界面和MFC的逻辑部分兼容呢?

     

    答案很简单,原来的代码逻辑可以直接使用,Qt本来就是标准的C++,Qt程序中只要你包含了Win32 SDK的头文件和Lib库,是可以正常使用Win32的API的,注意,你需要使用VS上带的C++编译器cl.exe和link(不知道现在叫啥名字了…大家都是用的集成的IDE),不然lib库是链接不上的。

     

    说说缺点吧,就是你的程序可能体积变大了,要用到QtGui4.dll和QtCore.dll.若是用了Windows的API,你就丧失了Qt最大的优点,可以往其他平台上移植不需要修改代码(比如Unbutu)。但是若是你只是想把界面简单的做的漂亮,那么Qt无疑是最佳选择

    展开全文
  • Qt学习之路】我的Qt历程

    千次阅读 2017-08-28 13:55:16
    我刚接触Qt时,那时还是Qt4的时代,当时是因为要开发Linux for PC和Linux for ARM应用软件的关系,选择了Qt Creator+Qt的开发平台。后来因为项目人手不够,原本计划MFC开发的,由自己改用Qt开发Win下的应用,发现Qt...
  • QT学习——信号与槽机制

    千次阅读 2017-06-28 23:07:30
    最近开始学习QT,之前自学过MFC的知识,对于MFC的编程和应用还是了解一些的,自己上网找了一些MFCQT的相关对比信息,总的来说,就是MFC效率较高,但大量的Windows API和消息机制使得MFC较难理解,不易用;QT封装较...
  • qt学习中的一点总结

    2017-09-18 22:51:35
    其实,qt学习还算是简单,比起来MFC,那可是容易太多了,之前看了半天,还是没发现入口程序在哪里的。 而且qt是夸平台的,这是帮了大忙了。其他的学习,应该来说还是控件的学习吧,多了解一些控件的使用。自己干的...
  • 开始的话可能会有人好奇为什么要学MFC,MFC算是比较老的东西了,现在...我开始是觉得MFC没有QT简单明了,而且QT,所以选择了QT,但是没有办法,学校老师教的就是MFC,为了交作业,所以还是要回来一下MFC开发。 学习M...
  • 星期六下午4点,还在公司加班。终于写完了下周要交工的一个程序。... 当初上大学的时候,就是冲着MFC这3个字去的。Microsoft Foundation Classes多么的NB。仿佛这些C打头的类就是构建微软大厦的一根根螺钉。
  • QT日记——初识QT

    2011-07-03 10:10:08
    7.1~7.2 之前学了点MFC,现在来学QT感觉还是有不小帮助的,至少刚看QT代码的时候还是比较容易理解。 首先,在QT中发现了main()函数让我比较惊奇,以前MFC是找不到的,就是winmain也看不到,而且仔细看QT的代码...
  • MFC概述

    2018-06-10 15:47:50
    用了Qt大半年,略懂皮毛,对MFC有些偏见。认为是过时之物。最后发现不管用什么,...说明在市场上,在正式的应用场合里MFC还,C++在Windows的简单桌面应用开发还是可以考虑一下MFC的,因为当年学MFC的那个群体的长辈...
  • qt qtcreator vs2010

    2015-06-04 15:24:35
    添加个按钮事件都得鼓捣半天,还是qtcreator上。换在vs2010上添加按钮事件,更复杂,必须自己去关联slot,并且slot函数还得自己定义。 所以,决定记录一下自己的学习历程,巩固知识,而且希望能帮到和我一样的...
  • MFC实用技巧

    2020-03-12 22:44:55
    现在适合做界面的工具很多,python,qtmfc,c#,java等,mfc算是比较过时的了。可能是最先接触的是mfc,所以习惯还是用他做界面化得东西 之前用mfc做了一个小项目,中间边边用,完了想把过程中遇到的问题,记录...
  • 使用Qt

    2017-02-10 13:46:50
    我们最近在做重构,考虑把界面技术切换到Qt,由于团队里的两个C++ UI都只有MFC的经验,我不做UI,只是在学校中学习过Qt的课程,我是推荐使用Qt的,这事儿还是讨论了一番。  我们做了一番尝试,认为Qt的确是比MFC...
  • Qt安装使用

    千次阅读 2016-10-30 21:25:18
    前言今个闲来无事,就玩玩Qt怎么用的,也体验一下高端的界面编程。 准备花一周玩玩,尽量弄出点动静来。为啥安装因为想搞个GUI,弄点大事呗,GUI还是...网上建议先学Qt。开发环境Windows搭配: Eclipse+Qt+MinGW QtCr
  • 抛弃MFC, 转向.Net

    千次阅读 2008-11-02 00:49:00
    现在我们的工具全是MFC的, 维护起来那叫一个郁闷一直在找一个C++中好用的UI库, 看过Qt(看起来到不错, 懒得), wxWidgets(跟MFC一个样), 剩下的就不说了......前段时间发现了Xtreme ToolkitPro, 里面那些Samples很...
  • QT 是一个跨平台(Windows、Linux和嵌入式系统)的面向对象开发平台,使用C++语言。...Qt是我所接触的一个很好的类库(可能用平台更合适),虽然我用得最多的还是MFC。这个很好并不单单是它的类可以为我们的程序开发减
  • 前言一直利用Qt库做Ui设计,但针对于一些MFC项目,掌握一些必要的MFC开发技巧还是很有必要的。这篇博客里就将自己所的一些MFC浅显知识记录一下,方便今后的学习。博客里只记录关键步骤。 一、新建MFC项目选择:...
  • QT版本成功

    千次阅读 2012-07-10 11:03:35
    花了半个月学习QT,并且把MFC中的程序用QT版本重写了一遍,遇到以下一些问题: 1、字符集问题,unicode和ASCII还是比较混乱。 2、导入贴图最好用QImage,而不是glaux库中的auxDIBImageLoad,因为QT不自带这个库,...
  • MFC开始之旅

    2018-09-12 20:00:38
    今天刚开始接触MFC的内容是因为一个项目的需要,突然要从QT转过来,心里还是很慌的,因为刚毕业,大学那会VS用的也不是很多。 今天下班看了一会MFC怎么创建一个带界面的工程。自己操作了一把,过程分享如下: 首先,...
  • Qt学习笔记 -- Qt简史

    2010-01-25 23:27:00
    在知道Qt之前,所知道的GUI库就是MFC了, 然后还偶尔听说过GTK, GTK+之类的, 这些库都有或多或少的缺点。 后来在一次搜索中发现了还有一种GUI库叫Qt,好像它是集所有最好的特点于一身的库,当时对它的描述记得很...
  • 但是MFCQT在显示的模式上感觉还是有很多不同,特别是在QT上显示的时候大多会使用osgQt这个库,但是从github上下载了之后始终无法编译成功,基本上看了网上所有关于osgQt的博客和使用方法,基本都没有走通,所以...
  • QT开发总结

    2011-06-29 17:59:00
    QT开发程序效率还是很高的,特别是用了QT creator 2.2.1。这几天用QT开发程序,似乎找到了用C++开发程序的感觉,以前用c++写程序就像是在自虐,就连string、time等基本类型都得东拼西凑的找类库,MFC的文档/视也搞得...
  • 在VS2008中配置QT

    千次阅读 2011-08-02 22:21:39
    了这么多年的C++,最近才开始研究QT。用了一段时间的WPF,觉得当年苦哈哈的学习MFC真是太傻了。用过Openframeworks,觉得也还不错,但是功能还是不够强大,尤其在UI设计方面,所以现在开始学习QT,希望不会太晚。 ...
  • Qt一个脱离平台的GUI,好处不多说了,由于开始做毕设,考虑到MFC的纷繁复杂,主要是还是自己功力尚浅,所以为了避繁就简开始了Qt的学习,而由于项目开发的过程中需要用到许多第三方的东西,所以不能脱离Vs2010这个...
  • vs2015使用qt静态库5.7

    2020-06-11 10:59:37
    MFC库现在基本上没落了, 用的人越来越少,现在一般做GUI开发都是使用QtQt这个东西实现比MFC不知道高到哪里去了, 使用起来更符合直觉, 起来更简单,可惜了没有一个好爹, 一直没有火起来!! Qt这个GUI库...
  • VC----初识MFC框架

    千次阅读 2016-08-24 19:49:10
    这段时间项目任务紧,自己也不能保证时间每天一章了,只能抽...自己选择了MFC还是源于对C/C++的钟爱吧!不过说回来,C/C++功能确实强大,但是开发黑客工具确实不如python便捷(~ o ~)  言归正传,这次自己学习了M

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

学qt还是mfc