非常有帮助的参考资料:

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. 【Vue.js】vue引入组件报错:该组件未注册?

    [Vue warn]: Unknown custom element: <QuestionnaireOption> - did you register the component cor ...

  2. 【前端框架系列】浅谈当前基于bootstrap框架的几种主流前端框架

    一  概述 当新开发一个项目或产品时,技术选型是一个不可缺少的环节,在软件架构中有着举足轻重的作用,可以这么说,技术选型的好坏直接影响项目或产品的成败优劣,因此,在进行软件架构时,一定要想好技术选型. ...

  3. 高可用集群之keepalived+lvs实战-技术流ken

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  4. Ioc原理理解

    IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 如果我们打开机械式手表的后盖,就会看到与上面类似 ...

  5. springMVC_11拦截器实现登录

    一.   思路 controller实现核对用户名和密码,如果核对正确则保存到session中并且跳转到主页 系统中包含诸多界面,部分界面不需要登录即可进行访问,通过拦截器实现判断是否是不需要登录的界 ...

  6. regression and anova

    regression一般是统计学的回归回归,研究一个随机变量Y对另一个(X)或一组(X1,X2,-,Xk)变量的相依关系的统计分析方法.研究一 个或多个随机变量Y1 ,Y2 ,-,Yi与另一些变量X1 ...

  7. 课程作业——熟悉常用的Linux操作

    cd命令:切换目录 (1) 切换到目录 /usr/local cd /usr/local (2) 去到目前的上层目录 cd .. (3) 回到自己的主文件夹 cd ~ ls命令:查看文件与目录 (4) ...

  8. ajax知识点

    什么是AJAX? AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. ...

  9. gulp简介

    简介 gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试.检查.合并.压缩.格式化.浏 ...

  10. Atom插件安装及推荐

    简介(了解更多去google或baidu) Atom 代码编辑器支持 Windows.Mac.Linux 三大桌面平台,完全免费,并且已经在 GitHub 上开放了全部的源代码.在经过一段长时间的迭代 ...