QT上位机开发(第一个应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        不管是软件,还是硬件,如果我们能够顺利启动第一个应用,点亮第一个电路的话,这对我们的信心来说会有极大的提升。单纯从编程语言的角度来说,这就好比我们学会了各个语言的hello,world打印。这个打印虽然比较简单,但是至少说明一些问题,比如这个代码是没有问题的,编译器的设置是没有问题的,生成的程序也是没有问题的。今天呢,我们能就来开发QT平台的第一个程序,当前开发环境还是windows平台,linux平台其实也是差不多的。

1、安装QT软件

        QT软件可以直接从官方网站下载,比如这里

https://download.qt.io/archive/qt/5.12/5.12.5/

        此外,因为QT软件比较大,如果是windows版本的话,整个安装包的大小会有3.7G左右。因此,除了在电脑上准备一定大小的磁盘空间之外,还需要花一些时间来下载整个的安装包。可以考虑在中午午休、或者是晚上的时候下载这个软件。下载完毕之后,按照正常的windows软件安装步骤去安装即可。只是我们开发软件的时候,一般习惯于结合MSVC 2017进行开发,所以到时候需要把MSVC 2017 32-bit和MSVC 2017 64-bit选上即可。当然喜欢用Qt Creator去开发也是可以的。

2、安装MSVC 2017

        前面我们说过,希望用MSVC 2017来开发QT软件,所以这里需要借助于vs_community__1392934823.1488437296.exe这样的软件来安装一下MSVC 2017。

3、安装QT VS Tools插件

        QT VS Tools是MSVC 2017上面的插件。安装完插件之后,需要配置一下当前电脑上QT的版本,简单设置一下即可。设置完之后,我们就可以利用MSVC的Wizard创建QT工程了,

4、创建第一个项目

        QT、MSVC、插件都安装好之后,这个时候创建QT工程就很简单了。重新打开MSVC软件,选择文件-》新建-》项目,左侧选择Visual C++-》Qt,右侧选择Qt Widgets Application即可,接下来要做的就是根据Wizard的提示,一步一步单击下去即可。

5、编译测试

        虽然目前来说,我们还没有添加一行代码,但是这样的默认工程其实已经可以编译测试了。编译运行后的截图就是这样的一个空白窗口,如下图所示,

6、代码分析

        整个项目中,有三个文件需要注意下。第一个文件是main.cpp,相当于整个程序的入口函数,代码内容也比较简单,

#include "QtWidgetsApplication1.h"
#include <QtWidgets/QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);QtWidgetsApplication1 w;w.show();return a.exec();
}

        第二个文件是QtWidgetApplicaion1,是这个软件的主窗口,它的实现代码是这样的,

#include "QtWidgetsApplication1.h"QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);
}QtWidgetsApplication1::~QtWidgetsApplication1()
{}

        对应的头文件也比较有意思,大家最好也熟悉一下,特别是里面的ui变量,我们后期可能会经常遇到。

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication1.h"class QtWidgetsApplication1 : public QMainWindow
{Q_OBJECTpublic:QtWidgetsApplication1(QWidget *parent = nullptr);~QtWidgetsApplication1();private:Ui::QtWidgetsApplication1Class ui;
};

        第三个文件就是QtWidgetsApplication1.ui,这个文件是用来进行界面编辑的文件。具体的内容暂时不需要掌握。当然,仅仅有ui还是不够的,这方面qt插件会进一步帮助我们生成对应的h文件和cpp文件。

7、利用Qt Designer去配置ui文件

        Qt和大多数IDE一样,有两种界面配置方法,一种是用IDE工具去拖拉实现,这个工具在qt上被称之为Qt Designer;另外一个就是依靠软件硬编码的形式来进行界面设计。今天我们既然是第一个应用,不需要一开始就这么复杂,所以可以通过Qt Designer去简单设计一下界面,

        用Qt Designer设计保存之后,回到MSVC环境,这个时候一定要重新生成解决方案。因为只有这样,才能生成对应的h文件、cpp文件,也只有这样整个软件才会重新编译。编译运行后,没有问题的话,我们就可以看到这样的界面了,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何恢复 iPhone 上永久删除的照片?

2007年&#xff0c;苹果公司推出了一款惊天动地的智能手机&#xff0c;也就是后来的iPhone。你会惊讶地发现&#xff0c;迄今为止&#xff0c;苹果公司已经售出了 7 亿部 iPhone 设备。根据最新一项调查数据&#xff0c;智能手机利润的 95% 都进了苹果公司的腰包。 如此受欢迎…

多态的底层实现原理和泛型的底层实现原理

Java 多态的底层原理 - 知乎 (zhihu.com) 使用的是动态绑定&#xff0c;在调用这个方法的时候先去找实例的类&#xff0c;看是否有权限访问&#xff0c;并且看是否实现了该方法&#xff0c;没有的话就去父类找&#xff0c;为了提升效率&#xff0c;虚拟机不会每次都一层一层的…

【Vue2+3入门到实战】(16)VUEVue路由的重定向、404、编程式导航、path路径跳转传参 详细代码示例

目录 一、Vue路由-重定向1.问题2.解决方案3.语法4.代码演示 二、Vue路由-4041.作用2.位置3.语法4.代码示例 三、Vue路由-模式设置1.问题2.语法 四、编程式导航-两种路由跳转方式1.问题2.方案3.语法4.path路径跳转语法5.代码演示 path跳转方式6.name命名路由跳转7.代码演示通过n…

2023十大编程语言及未来展望

2023十大编程语言及未来展望 1. 2023年十大编程语言排行榜2. 十大编程语言未来展望PythonCCJavaC#JavaScriptPHPVisual BasicSQLAssembly language 1. 2023年十大编程语言排行榜 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量&#xff0c;并使用搜索引擎&a…

阿里云PolarDB数据库优惠价格表11元一天起

阿里云数据库PolarDB租用价格表&#xff0c;云数据库PolarDB MySQL版2核4GB&#xff08;通用&#xff09;、2个节点、60 GB存储空间55元5天&#xff0c;云数据库 PolarDB 分布式版标准版2核16G&#xff08;通用&#xff09;57.6元3天&#xff0c;阿里云百科aliyunbaike.com分享…

数据挖掘 聚类度量

格式化之前的代码&#xff1a; import numpy as np#计算 import pandas as pd#处理结构化表格 import matplotlib.pyplot as plt#绘制图表和可视化数据的函数&#xff0c;通常与numpy和pandas一起使用。 from sklearn import metrics#聚类算法的评估指标。 from sklearn.clust…

ansible管理windows测试

一、环境介绍 Ansible管理主机&#xff1a; 系统: redhat7.6 Linux管理服务器需安装pywinrm插件 Windows客户端主机&#xff1a; 系统: Server2012R2 Windows机器需要安装或升级powershell4.0以上版本&#xff0c;Server2008R2默认的版本是2.0&#xff0c;因此必须升…

k8s学习 — (DevOps实践)第十四章 微服务 DevOps 实战

k8s学习 — &#xff08;DevOps实践&#xff09;第十四章 微服务 DevOps 实战 ※ 各章节重要知识点1 项目构建1.1 项目环境1.2 服务 2 Jenkins CICD2.1 创建流水线项目2.2 Extended Choice Parameter 3 Kubesphere DevOps ※ 各章节重要知识点 k8s学习 — 各章节重要知识点 1…

使用flutter开发windows桌面软件读取ACR22U设备的nfc卡片id,5分钟搞定demo

最近有个需求&#xff0c;要使用acr122u读卡器插入电脑usb口&#xff0c;然后读取nfc卡片的id&#xff0c;并和用户账号绑定&#xff0c;调研了很多方式&#xff0c;之前使用rust实现过一次&#xff0c;还有go实现过一次&#xff0c;然后使用electron的时候遇到安装pcsc-lite失…

MacBook查看本机IP

嘚吧嘚 其实这也不是什么困难的问题&#xff0c;但是今年刚刚入坑Mac&#xff0c;外加用的频率不是很高&#xff0c;每次使用的时候都查&#xff0c;用完就忘&#xff0c;下次用的时候再查&#x1f92e;。真的把自己恶心坏了&#x1f648;。 所以写篇文章记录一下&#x1f92…

架构艺术:系统演进的精髓与实践

在快速变化和增长的商业环境中&#xff0c;系统架构设计成为确保软件项目成功的关键因素之一。一个高效、可靠、安全、易于维护和扩展的系统是业务持续发展的基石。本文将深入探讨系统层面的架构设计思路&#xff0c;着重介绍业务层、公共层和数据层的关键组成部分&#xff0c;…

[C++] : 贪心算法专题(第一部分)

1.柠檬水找零&#xff1a; 1.思路一&#xff1a; 柠檬水找零 class Solution { public:bool lemonadeChange(vector<int>& bills) {int file0;int ten 0;for(auto num:bills){if(num 5) file;else if(num 10){if(file > 0)file--,ten;elsereturn false;}else{i…

产品经理学习-策略产品指标

目录&#xff1a; 数据指标概述 通用指标介绍 Web端常用指标 移动端常用指标 如何选择一个合适的数据指标 数据指标概述 指标是衡量目标的一个参数&#xff0c;指一项活动中预期达到的指标、目标等&#xff0c;一般用数据表示&#xff0c;因此又称为数据指标&#xff1b;…

Flask笔记

一&#xff1a;模板渲染 一般的话都序列化成字符串 二&#xff1a;项目拆分 2.1 项目拆分 app.py init.py views.py models.py 模型数据 2.2 蓝图 三&#xff1a;路由参数 3.1 String 重点 3.2 int 3.3 path 3.4 UUID 3.5 any 四&#xff1a;请求方式 五&#xff1a;Requ…

FPGA和DSP的区别

FPGA与DSP FPGA与DSP的区别&#xff08;粗略整理&#xff09; https://blog.csdn.net/clara_d/article/details/82355397 ARM,DSP,FPGA三者比较 csdn链接 DSP是通用的信号处理器&#xff0c;用软件实现数据处理&#xff1b;FPGA用硬件实现数据处理。DSP成本低&#xff0c;算…

苹果CMS超级播放器专业版无授权全开源,附带安装教程

源码介绍 超级播放器专业版v1.0.8&#xff0c;内置六大主流播放器&#xff0c;支持各种格式的视频播放&#xff0c;支持主要功能在每一个播放器内核中都相同效果。 搭建教程 1.不兼容IE浏览器 2.php版本推荐7.4 支持7.1~7.4 3.框架引入不支持同时引入多个播放器 json对接教…

android studio官方网站关于android SDK环境变量的设置说明晦涩难懂

这是它中文版原文&#xff1a; 您可以通过设置环境变量来配置 Android Studio 和命令行工具的行为。其中一个最有用的环境变量之一是 ANDROID_HOME&#xff0c;很多工具都会读取该变量来确定 Android SDK 安装目录。如需通过命令行运行工具&#xff0c;而不包含可执行文件的完整…

新版 macos下安装python 2.7 python 3.x多版本简单方法 pyenv python多版本管理工具

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

如何将一个JSON字符串解析为JavaScript对象或值

JSON.parse(JSON.stringify(data)) 将后端传入的JSON数据data放入该方法的参数中&#xff0c;返回的结果就是JavaScript对象 比如将后端传入的对象key作为对象&#xff0c;而不是字符串双引号格式 {"path": "/home","name": "home",…

C#进阶-IIS应用程序池崩溃的解决方案

IIS是微软开发的Web服务器软件&#xff0c;被广泛用于Windows平台上的网站托管。在使用IIS过程中&#xff0c;可能会遇到应用程序池崩溃的问题&#xff0c;原因可能有很多&#xff0c;包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方…