非常有帮助的参考资料:

https://blog.csdn.net/gaojixu/article/details/82185694

该参考文献的主要流程:

(1)QT下载安装:从官网下载QT,并记住安装路径。

(2)在VS2017中下载QT的扩展模块:

  ①打开VS2017,选择工具 - 拓展和更新

  ②点击 联机 ,然后在搜索框中输入 Qt ,然后点击 下载

  ③关闭VS2017 ,会弹出VS2017 QT安装界面,点击弹窗中的 修改,然后关闭

  ④再次打开VS2017 ,在VS2017 的 Qt vs tools 的下拉菜单中选择 Qt options,进行相应环境配置,步骤较多,具体见参考资料。

  ⑤配置系统环境变量。

(3)在VS2017中新建一个C++的QT项目,进行测试。

注意,新建一个项目测试时,会弹框让勾选一些东西,具体每项勾选的作用目前不清楚,该参考资料中也没提及,自己实践发现全不勾选也没关系,功能跟之前测试的PYQT开发一样。

————————————————————————————————————————————————————————————————————

计算器程序Demo测试:

参考资料(有没解释的地方):https://blog.csdn.net/bjailihong/article/details/77508615

步骤:

第一  新建QT项目(简单)

第二  在Qt Designer中设计计算器UI界面(简单)

第三  在‘’项目名称.cpp‘’文件中(非main.cpp文件)添加事件和槽的关联代码,并编写UI界面中各处理逻辑

第三步全代码如下:主要注意各部分代码的摆放位置。

#include "QtGuiApplication1.h"

QtGuiApplication1::QtGuiApplication1(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    //添加关联代码,必须放在 setupUi 函数之后,信号与槽机制
    //btn_caculate为计算器中按钮的name,caculate为接下来自定义的函数名称
    connect(ui.btn_caculate, SIGNAL(clicked()), this, SLOT(caculate()));
}

void QtGuiApplication1::caculate()
{
    QString estr1 = "can not devide 0!";
    QString estr2 = "please choose caculate option!";

    double n1 = ui.lineEdit->text().toDouble();
    double n2 = ui.lineEdit_2->text().toDouble();

    int size1 = ui.lineEdit->text().size();
    int size2 = ui.lineEdit_2->text().size();

     || ui.lineEdit_2->text().size() == )
    {
        ui.lineEdit_3->setText("Please Input numbers!");
        return;
    }

    ;
    if (ui.radioButton->isChecked())
    {
        out = n1 + n2;
    }
    else if (ui.radioButton_2->isChecked())
    {
        out = n1 - n2;
    }
    else if (ui.radioButton_3->isChecked())
    {
        out = n1 * n2;
    }
    else if (ui.radioButton_4->isChecked())
    {
        ) < 1E-)
        {
            ui.lineEdit_3->setText(estr1);
            return;
        }
        else
            out = n1 / n2;
    }
    else
    {
        ui.lineEdit_3->setText(estr2);
        return;
    }

    ui.lineEdit_3->setText(QString::number());
}

最终效果:

注意:在测试该Demo时,修改了UI界面中某控件名字后,VS中的.h文件有时候并未更新,导致代码补全时一直不弹出最新的控件变量名。

等我直接编译运行一次项目后,才更新过来,具体该方面原因和解决办法暂时未去了解。

环境搭建中途报错1:

这是因为仅在VS2017中下载了QT模块,而没有在本机电脑中安装QT软件或配置环境变量,导致在VS中新建QT项目时报此错。

如下补充一点关于pyqt和qt开发区别:

VS2017 + QT5 + C++开发环境搭建和计算器Demo测试的更多相关文章

  1. 【游戏开发】基于VS2017的OpenGL开发环境搭建

    一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...

  2. VS2017离线安装与Oracle数据库开发环境搭建

    记得之前使用VS2015打开老的MVC4项目,不能右键创建控制器和添加视图,让我非常不习惯!找遍了网络无果,最后只能回到VS2013,但我就是不喜欢用旧的VS,这是不是病... 1.将VS2017离线 ...

  3. windows 下QT5.5+vs2013开发环境搭建

    开发环境搭建: 1.下载QT,下载的网址如下: http://download.qt.io/official_releases/vsaddin/ http://download.qt.io/offic ...

  4. [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建

    [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...

  5. 各种版本QT下载地址与VS2013+QT5.3.1环境搭建过程(转)

    原文转自 http://blog.csdn.net/baidu_34678439/article/details/54586058 1. 所有Qt版本下载地址: http://download.qt. ...

  6. Zynq7000开发系列-6(QT开发环境搭建:Ubuntu、Zynq)

    操作系统:Ubuntu14.04.5 LTS 64bit Qt:Qt 5.4.2 (qt-opensource-linux-x64-5.4.2.run.qt-everywhere-opensource ...

  7. Ionic2开发环境搭建-VS 2017

    原文:Ionic2开发环境搭建-VS 2017 目前在VS 2017中创建Ionic2版本项目 注:在VS中开发Ionic项目,使用的Ionic(v2.x),Cordova(v6.3.1),Angul ...

  8. NetCore2.2开发环境搭建和2008R2部署环境搭建

    开发环境: 开发工具:VS2017 系统:Win10 64位 Skd下载地址: https://dotnet.microsoft.com/download 3个都下载下载,安装dotnet-sdk-2 ...

  9. Linux下使用VsCode进行Qt开发环境搭建

    最近在Linux上搞Qt, vim环境还用不太习惯, QtCreator之前使用时莫名其妙崩溃然后丢失代码之后就被我彻底放弃了, 于是研究了一下用VsCode进行Qt开发. 首先是系统环境和下载安装包 ...

随机推荐

  1. SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池

    三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...

  2. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

  3. 怎么使用小程序的data-*属性?

    参考文档:小程序事件 怎么使用小程序的data-*属性?[data-type,data-num,……] dataset 在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE. 书写方式: ...

  4. 7. Callable 创建线程的方式三

    package com.gf.demo06; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionEx ...

  5. 【Spring】使用Spring和AMQP发送接收消息(下)

    上篇讲了使用RabbitMQ发送消息,本篇则来讲接收消息.在传统JMS中有两种从队列获取信息的方式,使用JmsTemplate的同步方式以及使用消息驱动pojo的异步方式.Spring AMQP也提供 ...

  6. PHP实现二分法查找

    二分查找法需要数组是一个有序的数组. <?php function binarySearch($num, $arr) { $start = 0; $end = count($arr); $mid ...

  7. 理解Promise的3种姿势

    译者按: 对于Promise,也许你会用了,却并不理解:也许你理解了,却只可意会不可言传.这篇博客将从3个简单的视角理解Promise,应该对你有所帮助. 原文: Three ways of unde ...

  8. Sql 判断函数是否存在、sql判断表是否存在、sql判断存储过程是否存在、sql判断视图是否存在

    --数据库是否存在 IF exists(SELECT * FROM master..sysdatabases WHERE name=N'库名') PRINT 'exists' ELSE PRINT ' ...

  9. JS获取元素的宽高以及offsetTop,offsetLeft等的属性值

    基本介绍 $(obj).width()与$(obj).height() $(obj).width()与$(obj).height() :jquery方式获取元素的宽高,不包括滚动条与工具条 $(obj ...

  10. 前端了解即可:OSS客户端如何使用,以实现资源分离

    前一阵,应为项目需要,才简单整理了一下oss客户端的使用,做静态资源分离,及在项目中引入路径.接下来讲解记录一下,阿里云对象存储(Object Storage Service,简称OSS)客户端的基础 ...