VS2017 + QT5 + C++开发环境搭建和计算器Demo测试
非常有帮助的参考资料:
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测试的更多相关文章
- 【游戏开发】基于VS2017的OpenGL开发环境搭建
一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...
- VS2017离线安装与Oracle数据库开发环境搭建
记得之前使用VS2015打开老的MVC4项目,不能右键创建控制器和添加视图,让我非常不习惯!找遍了网络无果,最后只能回到VS2013,但我就是不喜欢用旧的VS,这是不是病... 1.将VS2017离线 ...
- windows 下QT5.5+vs2013开发环境搭建
开发环境搭建: 1.下载QT,下载的网址如下: http://download.qt.io/official_releases/vsaddin/ http://download.qt.io/offic ...
- [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建
[.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...
- 各种版本QT下载地址与VS2013+QT5.3.1环境搭建过程(转)
原文转自 http://blog.csdn.net/baidu_34678439/article/details/54586058 1. 所有Qt版本下载地址: http://download.qt. ...
- 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 ...
- Ionic2开发环境搭建-VS 2017
原文:Ionic2开发环境搭建-VS 2017 目前在VS 2017中创建Ionic2版本项目 注:在VS中开发Ionic项目,使用的Ionic(v2.x),Cordova(v6.3.1),Angul ...
- NetCore2.2开发环境搭建和2008R2部署环境搭建
开发环境: 开发工具:VS2017 系统:Win10 64位 Skd下载地址: https://dotnet.microsoft.com/download 3个都下载下载,安装dotnet-sdk-2 ...
- Linux下使用VsCode进行Qt开发环境搭建
最近在Linux上搞Qt, vim环境还用不太习惯, QtCreator之前使用时莫名其妙崩溃然后丢失代码之后就被我彻底放弃了, 于是研究了一下用VsCode进行Qt开发. 首先是系统环境和下载安装包 ...
随机推荐
- 机器学习中数据清洗&预处理
数据预处理是建立机器学习模型的第一步,对最终结果有决定性的作用:如果你的数据集没有完成数据清洗和预处理,那么你的模型很可能也不会有效 第一步,导入数据 进行学习的第一步,我们需要将数据导入程序以进行下 ...
- 【Go】strings.Replace 与 bytes.Replace 调优
原文链接:https://blog.thinkeridea.com/201902/go/replcae_you_hua.html 标准库中函数大多数情况下更通用,性能并非最好的,还是不能过于迷信标准库 ...
- L1与L2损失函数和正则化的区别
本文翻译自文章:Differences between L1 and L2 as Loss Function and Regularization,如有翻译不当之处,欢迎拍砖,谢谢~ 在机器学习实 ...
- 编译部署mysql5.7.13
署环境centos7.2+mysql5.7.131.依赖包注: 相关依赖包的作用cmake:由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器, ...
- Git合并指定文件到另一个分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- Spring-继承JdbcDaoSupport类后简化配置文件内容
正常情况下,我们在实现类中想要晕用模板类需要在配置文件中注入连接池,再将连接池注入给模板类,然后在实现类中得到. <!-- 配置C3P0连接池 --> <bean id = &quo ...
- Java编程思想__异常
1.使用异常链,需要采用如下方式包装捕获到的异常: public void two() { System.out.println("two()"); try { one(); } ...
- Laravel5.5 数据库迁移:创建表与修改表
数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php arti ...
- 亲测:LNMP环境下,解决项目缓冲慢、502以及配置https的问题
在做的项目在nginx下访问缓冲时间过长,明显比apache下访问蛮11倍有余, 解决办法: 1增加nginx的upstream,其中upstream中为php-cgi的地址: 2利用nginx作为反 ...
- ATOM中MARKDOWN的使用小结
1.ctrl+shift+p ; 输入ssvvp ; 回车 2.输入markdown-preview进行安装 3.打开任意.md 文件 ; 按 ctrl-shift-m 进行预览