Qt应用开发——前言

2023-11-11

        在IT/电子/通信/智能硬件等行业,都有PC端软件应用开发的人才需求。岗位名称有上位机软件平台软件开发客户端软件开发测试软件开发自动化测试软件开发等。根据公司行业差别和应用场景的不同,技术框架和岗位名称会有一定的区别。

        PC端软件应用,顾名思义就是在笔记本、台式机上使用的软件,比如我们常用的360、QQ、微信、美图秀秀等等,这些都是属于PC端的应用。而在工业中还会存在各种公司定制的软件,通过特定通道和协议与产品或者后台交互,让产品数据可视化,它们负责控制和管理整个系统,收集并处理数据,执行复杂的算法和逻辑操作,这一般称之为上位机。

        软件开发技术一般有

  • Microsoft .NET Framework :使用面向对象C#语言开发Windows应用,开发IDE为Visual Studio,丰富的类库提供各种可重用的类型集合,提供GUI支持快速开发。
  • MFC :以C++类的形式封装了Windows的API,并且包含一个应用程序框架,其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类,是一种主流的上位机开发框架。
  • LabVIEW:一款由美国国家仪器公司(NI)开发的图形化编程环境,它支持多种数据采集、分析和控制应用,是一种面向工程师和科学家的高效开发工具。而LabVIEW使用的是图形化编辑语言G编写程序,使用这种语言编程时,基本上不写程序代码,取而代之的是流程图框图
  • Qt Creator:一款跨平台的 C++ 集成开发环境(IDE),可以帮助开发者创建图形化用户界面,同时具有良好的调试功能。Qt库是最强大的库之一,支持可用于Linux、Windows、Mac、安卓等操作系统的应用程序跨平台开发。

        还有很多可以写PC端软件的软件框架,比如Flutter、Duilib、Matlab、Python等等,这些都比较小众,市场上对应用这些技术写PC端软件的需求不多,但有兴趣的同学都可以去了解看看。        

        PC端软件代码量从几千到几十万都有,岗位也分初级、中级、高级,厦门工资在国内属于偏低行情,23年薪资范围大概为月平均薪资在8k-25k区间,北上沪深的工资大概多个30%左右,不包含年终奖金和公司福利,对于刚毕业的年轻人和一些基础较弱的同学,想要入行,此类容易学习门槛相对较低且能快速学习的技术,是进军IT行业的敲门砖。后续在学习嵌入式图像处理或者C++深入方面,可以起到辅助作用。

         对于我们而言,我们PC应用开发,需要的是快速开发和丰富的视觉效果,而Qt就提供了这样的一个框架, 各种封装好的类库,例如按钮、窗体、状态栏工具栏滚动条、位图、颜色、字体等,能快速完成数据的转化和展示,支持各类模块化的图形库和自定义库,而且在数据逻辑方面,QT提供了信号与槽的机制,使用起来相当的舒服,并且支持SVN、Git代码管理工具,支持国际化,用起来不要太方便。甚至你是一个python程序员,不懂C++,你都可以创建PyQt,Python编程语言和Qt库完美融合。

        Qt优势在于开源跨平台性,这意味着我们可以访问Qt的全部源代码。而跨平台性在于,Qt提供了很多基础模块,并且保证这些模块的它支持的平台上面都可以使用。如果我们使用Qt框架的模块在Windows开发了一个应用程序,那么我们可以把代码放在macOS或者Linux上,不用改一行代码,就可以编译运行。当然前提是不能使用非Qt或者特定平台的API。比如你的代码调用了一个Windows的系统API,在其他平台肯定是编译不过去的,这时候你就需要使用宏定义做特殊处理。

af2c7104048e4886927866e85d8a06fc.png

        接下去我们将对Qt做一次系统的讲解,学习完使用方法,根据实际的应用场景,写出一个个PC软件,成为市场需要的人才。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt应用开发——前言 的相关文章

  • 在哪里使用 EF6 订阅 ObjectMaterialized?

    我正在尝试将我的上下文订阅到以下 OnjectMaterialized 事件this https stackoverflow com a 3756842 2835713 像这样 IObjectContextAdapter this Obje
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 为什么在 OpenCV 中访问该矩阵时出现内存错误?

    我只是想写入给定大小的矩阵 当我在 Valgrind 中运行该程序时 出现内存错误 如下所示 主要 cpp include
  • 函数的不明确的引用/值版本

    考虑以下函数原型 void Remove SomeContainer Vec const std size t Index SomeContainer Remove SomeContainer Vec const std size t In
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 通过 EUSART PIC18F45K80 打印消息

    我正在尝试向 Docklight 发送串行消息 但始终收到空值 我正在使用带有 XC8 MPLAB X 的 PIC18F45K80 我的代码中的所有内容似乎都是正确的 但我想我错了 我该如何修复它 include
  • 如何(可移植地)在 C 和 C++ 中获取 DBL_EPSILON

    我正在 Linux AS 3 上使用 GCC 3 4 并试图找出DBL EPSILON 或者至少是一个不错的近似值 我怎样才能以编程方式获取它 在 C 中是std numeric limits
  • 对无符号 8 位整数进行左移操作 [重复]

    这个问题在这里已经有答案了 我试图理解 C C 中的移位运算符 但它们给我带来了困难 我有一个无符号 8 位整数 初始化为一个值 例如 1 uint8 t x 1 根据我的理解 它在内存中的表示方式如下 0 0 0 0 0 0 0 1 现在
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 如何将对 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

    我们正在处理一个网站项目并尝试参考System Data DataSetExtensions 使用 Web 应用程序会更好 不过 技术主管有她的理由 这是我们尝试过的 找到装配路径 打开 Visual Studio 命令提示符并运行sn e
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 函数中的重复参数检查

    我经常有调用层次结构 因为所有方法都需要相同的参数 如果我不想将它们放在实例级别 类的成员 那么我总是问我在每个方法中检查它们的有效性是否有意义 例如 public void MethodA object o if null o throw
  • 如何明智地解释这个编译器警告?

    当我执行这段代码时question https stackoverflow com a 51056490 2411320 我收到这个警告 warning format d expects argument of type int but a
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 为什么 char 数组需要 strcpy 而 char star 不需要 - 在 C 中使用结构

    我对这段代码有一个误解 typedef struct EXP int x char name char lastName 40 XMP main XMP a a name eaaa a lastName strcpy a lastName
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用

随机推荐

  • Java中的序列化和反序列化

    java对象序列化是指将java对象转换为字节序列的过程 而反序列化则是将字节序列转换为java对象的过程 我们知道 不同进程 程序间进行远程通信时 可以相互发送各种类型的数据 包括文本 图片 音频 视频等 而这些数据都会以二进制序列的形式
  • Blob,ArrayBuffer,File,FileReader,Buffer,TypeArray 的作用和区别

    Blob Binary Large object 二进制大型对象 是一个相对high level的概念 一个Blob对象可以包含一个或多个连续内存 通常是由一个或多个ArrayBuffer对象组成的数组 ArrayBufer 与 Buffe
  • kubernetes HPA使用及测试

    一 安装metrics server Metrics Server是Kubernetes内置的容器资源指标来源 Metrics Server从node节点上的Kubelet收集资源指标 并通过Metrics API在 Kubernetes
  • TestNG基本注释二:基本注释解释

    在TestNG基本注释一中 我们给出来一个用eclipse IDE生成的TestNG测试类 package test java com testng test import org testng annotations Test impor
  • 机器学习实战5-天气预测系列:利用数据集可视化分析数据,并预测某个城市的天气情况

    大家好 我是微学AI 最近天气真的是多变啊 忽冷忽热 今天再次给大家带来天气的话题 机器学习实战5 天气预测系列 我们将探讨一个城市的气象数据集 并利用机器学习来预测该城市的天气状况 该数据集包含年平均温度和湿度等信息 一 准备工作 首先
  • 【Linux】Ubuntu20.04版本安装谷歌中文输入法【教程】

    Linux Ubuntu20 04版本安装谷歌中文输入法 教程 文章目录 Linux Ubuntu20 04版本安装谷歌中文输入法 教程 一 下载fcitx googlepinyin 二 配置Language Support Referen
  • java随机生成6位验证码的方法对比(这里列出三种)

    第一种方式 不推荐 因为结果可能会出现错误 String code String valueOf new Random nextInt 1000000 这种方式有问题 问题在于 在连续生成多次的情况下 可能会生成小于6位的验证码 测试 fo
  • scrollIntoView 的使用

    描述 将调用此方法的元素滚动到浏览器窗口的可见区域 scrollIntoView 官方文档 用法 element scrollIntoView 用法同 element scrollIntoView true element scrollIn
  • 网络工程师--网络安全与应用案例分析

    案例一 某单位现有网络拓扑结构如下图所示 实现用户上网功能 该网络使用的网络交换机均为三层设备 用户地址分配为手动指定 案例分析一 路由器AR2200的GE0 0 1接口地址为内网地址 为确保内部用户访问Internet 需要在该设备配置
  • 线上验证真的就是点点点吗?

    最近测试了一个项目 与其他4个后台有合作 今天项目上线了 一下配置错了 一下数据错了 真整的有点手忙脚乱 于是 整理了一个checklist 供后续备忘 希望能对大家有所启发 线上验证 有些项目比较单一 或许点点点就足够了 但是遇到与其他项
  • SHELL脚本 遍历文件夹下所有文件以及子文件夹

    SHELL脚本 遍历文件夹下所有文件以及子文件夹 dir 要设置为局部变量 如果设置为全局变量 在func递归时传入的参数 会改变 dir的值 将导致之后的文件目录错误 为更改后的dir值 当前目录情况 执行完shell后 附上代码 bin
  • 从源码到原理剖析activity核心知识点

    如何在onResume方法中获取到View的宽高 有两种方式 post和addOnGlobalLayoutListener override fun onResume super onResume Log e onresume tabBot
  • 新手使用~React+Antd^4.1.3+Hooks自定义筛选框

    官网此版本的筛选组件为 根据可爱的pm的要求 需要添加全选 确认筛选 重置按钮 此情景适用于后端所需要的的参数传递为多选 数组的形式 而非单个字符串 引入需要的组件及包 import Table Button Checkbox Space
  • AAL:ATM 适配层(AAL0、AAL2、AAL3/4、AAL5)--网络大典

    ATM 适配层 AAL 主要负责 ATM 层与高层之间的信元转发过程 从上层收到信息后 AAL 将数据分割成 ATM 信元 从 ATM 层收到信息后 AAL 必须重新组合数据形成一个上层能够辨识的格式 上述操作称之为分段与重组 SAR 它是
  • 【哈夫曼树】

    目录 前言 1 哈夫曼树结构 2 初始化 3 构造哈夫曼树 4 获取Huffman编码 整体代码 前言 哈夫曼树又称最优二叉树 可以对带权节点进行编码并且保证每个数据的编码都不会是其他数据的前缀 保证了编码的唯一性 因此 哈夫曼编码又称为前
  • xcode开发中 各种警告

    一 Missing file xxx 如果你在finder中删除了工程里面的文件 xcode上会出现一个警告 Missing file xxx 有个警告在那恨事不自在 上网着了下 发现了如下解决方法 1 打开terminal cd 到刚才你
  • Mysql存储json格式数据需要掌握的

    目录 一 前言 二 什么是 JSON 三 Mysql当中json函数 四 JSON值部分更新 4 1 使用 Partial Updates 的条件 4 2 如何在 binlog 中开启 Partial Updates 4 3 关于 Part
  • centos7 git安装

    开发十年 就只剩下这套Java开发体系了 gt gt gt 由于centos中的源仓库中git不是最新版本 需要进行源码安装 1 查看yum仓库git信息 root iZm5e3d4r5i5ml889vh6esZ zh yum info g
  • ESB产品UI升级总结

    一款好的产品需要不断地打磨才能变得更完整 更稳定 企业服务总线ESB产品作为数通畅联的核心产品 为了能够更好地迎合客户的需求 实现更好的视觉效果和体验感 需要不断地迭代升级 本次升级主要是针对整体页面进行优化以及对部分功能进行修复和调整 升
  • Qt应用开发——前言

    在IT 电子 通信 智能硬件等行业 都有PC端软件应用开发的人才需求 岗位名称有上位机软件 平台软件开发 客户端软件开发 测试软件开发或自动化测试软件开发等 根据公司行业差别和应用场景的不同 技术框架和岗位名称会有一定的区别 PC端软件应用