C++和qt designer的混合编程--动态计算加法小工具
文章目录
- 前言
- 一、准备工作
- 二、开发步骤
- 1.新建文件夹
- 2.编辑add.ui文件
- 2.具体实现
- 2.1 编辑add.h文件
- 2.2 编辑add.cpp文件
- 2.3 关联槽函数
- 总结
前言
最近的工作岗位需要使用C++与qt designer的编程环境进行项目的开发,现在和我一起开始进行第一个C++和qt designer的混合编程项目吧。
一、准备工作
进行开发前,你需要:
1.一台电脑
2.visual studio2008(我使用的是企业版,如果只是学习的小伙伴,可以选择其他版本)
3.qt designer
如果电脑上没有在visual studio上进行qt的配置的童鞋先配置好环境后再往下阅读。
项目的开发过程是在vs2008使用qt designer上设计的界面,然后使用c++设计程序逻辑
二、开发步骤
1.新建文件夹
1.打开vs2008
2.点击文件——>新建——>项目
3.如下图
点击finish后,就建好了第一个项目,文件夹的结构如下图:
其中需要我们进行编辑的文件有
1.add.ui qt designer进行界面设计的文件;
2.add.cpp 编写具体函数等;
3.addTool.h 申明界面类;
2.编辑add.ui文件
代码如下(示例):
双击add.ui文件后,打开如下图:
红色方框中的界面就是我们需要编辑的界面。
在qt designer的左边导航栏选择加入2个spin控件,5个Label和1个Text Browser。
改变spin控件中的值后,在Test Browser中会显示当前时刻两个加数的和。
如图,改变label控件大小的方法:
选中控件后,给控件命名,在右侧属性栏中,找到objectname,并把spin控件分别命名。第一个spin控件命名为add1,第二个spin控件命名为add2,Text Browser控件命名为result。如图:
设计好界面后,让我们看看最后的效果图:
2.具体实现
具体的实现,我们要解决把对控件的操作和代码关联起来。所以我们要解决两个问题: 1.当spin控件的值改变时,如何让TextBrowser中的值随之改变? 2.在类中如何使用控件的变量
2.1 编辑add.h文件
1.针对第一个问题,打开add.h文件,我们可以看到Ui::addClass ui;
所有的界面上的变量都可以理解为ui的成员变量,我们就能解决第一个问题了。
2.针对第二个问题,我们在add.h这个文件中添加构造函数和槽函数。
qt中有一个机制——信号槽,信号槽的大致意思是假设界面上点击某一个按钮后弹出对话框,这个点击的操作就是信号,“弹出对话框”的实现是通过槽来实现的,我们只需要在add.h中添加构造函数和槽函数。
add.h文件代码如下:
#ifndef ADD_H
#define ADD_H#pragma once#include <QtGui/QMainWindow>
#include "ui_add.h"class add : public QMainWindow
{Q_OBJECTpublic:add(QWidget *parent = 0, Qt::WFlags flags = 0);~add();private:Ui::addClass ui;private slots:void add1_valueChanged(int value);void add2_valueChanged(int value);
};#endif // ADD_H
2.2 编辑add.cpp文件
add.cpp文件代码如下:
#include "add.h"add::add(QWidget *parent, Qt::WFlags flags): QMainWindow(parent, flags)
{ui.setupUi(this);
}add::~add()
{}void add::add1_valueChanged(int value)
{ui.result->setText(QString::number(value +ui.add2->value()));
}void add::add2_valueChanged(int value)
{ui.result->setText(QString::number(value + ui.add1->value()));
}
2.3 关联槽函数
写好槽函数后,我们需要把控件和槽函数进行关联。如图:
先选中spin控件,再点击第二步方框红色方框的图标,接下来选中spin控件使用鼠标左键将控件下拉,点击编辑,增加槽函数add1_valueChanged(int)
add2_valueChanged(int)
对第一个spin控件添加add1_valueChanged(int)如图所示:
点击确定后,对第二个spin控件进行同样的操作,添加add2_valueChanged(int)。
关联好后如图所示:
现在可以开执行C++程序了,运行后的效果如图所示:
总结
我也是看了网上一些大佬的代码,自己复现出来的,并且在这期间出现了很多错误(呜呜呜)。。。如果大家在实现过程中出现什么问题了,欢迎一起讨论!
C++和qt designer的混合编程--动态计算加法小工具相关推荐
- Qt与Matlab混合编程细节总结
最近准备做一个项目,其中要用到很复杂的拟合算法等,自己去实现这些算法要很久,而手边有师兄已经写好的Matlab函数,如果可以实现利用Qt调用这些函数,那么工作量将会减少很多.而且这个看上去也很简单,至 ...
- qt matlab环境配置文件,Qt与matlab混合编程
由于项目需要,需要调用现有的matlab程序,考虑将matlab程序生成动态链接库,再在Qt下动态调用.在这个过程中,遇到了许多问题,写个文章mark一下. 1.环境准备 我的电脑是win10,也先装 ...
- QT与MATLAB混合编程
QT与MATLAB混合编程 本文就介绍使用 Qt 和 Matlab 进行混合编程的基本流程,主要包括: 如何在Matlab中将m文件编译为C++语言的DLL文件 如何在Qt项目中加入自定义DLL相关的 ...
- pyqt5 Qt Designer + PyqtGraph画图显示动态曲线
PyQt5 Qt Designer 使用PyqtGraph画图显示动态曲线 源码示例下载 传送门 效果图: 导入pyqt5库: pip install PyQt5==5.15.4 -i https:/ ...
- halcon linux qt,Halcon C++混合编程学习之Qt 实现检测焊接点
Halcon C++混合编程学习之Qt 实现检测焊接点 # include "HalconCpp.h" # include "HDevThread.h" # i ...
- Qt和海康威视混合编程
Qt 打开海康威视工业相机 在将缓存数据转为QImage格式之后,点击采集,在lable中显示一片绿色,怎么回事? int myCamer::ReadBuffer() { unsigned int n ...
- 学习笔记:Qt与Matlab混合编程及遇到的诸多问题(附DEMO)
工具:MATLAB R2014b,Qt 5.6.1, 目标:通过MATLAB写一个简单的函数,生成动态链接库DLL,再在Qt上调用 1.在MATLAB主页新建一个函数 记住函数的名字和保存的函数文件的 ...
- python利器怎么编程-Python实现翻译小工具!几行代码搞定!装逼利器有没有!
一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面 二.代码 进群:548377875 即可 ...
- python编程工时计算_Python小项目——工时计算
项目二:工作量计算器 要求 要求 分析过程 已知信息:标准的项目,需要1个人用80工时完成(1个人做10天) 计算方式1:工时计算 输入:项目大小(浮点型,代表标准大小的倍数).人数(整数) 输出:工 ...
最新文章
- Squid代理服务器基本配置(三)
- Linux C编程--进程间通信(IPC)2--信号处理函数
- 跳转到保护模式并显示一个LOGO
- 基于Boost::beast模块的小型http服务器
- SQL SERVER 执行计划各字段注释
- linux 中 ~/.和$
- rsync error: some files/attrs were not transferred
- AUTOSAR专业知识篇(八)-ID.3 和大众的电气化平台
- _UICreateCGImageFromIOSurface 使用API
- 前端学习(2433):创建页面组件
- updating homebrew...一直在等 brew install xxx卡在Updating Homebrew
- mysql自定义多选排序,mysql 使用order by field() 自定义排序
- 16进制String和int互转
- android开发学习---开发一个简易的短信发送器
- 2017中国屏幕分辨率统计
- coreseek mysql.sock_coreseek+lnmp实现站内全文检索
- Windows Server2012默认的80端口被System进程占用解决办法
- python修改游戏数据_python1.2-----pywin32模块/语音合成,窗口闪烁以及修改游戏数据的技巧...
- android课程设计健身,健身软件课程设计_毕业论文设计.doc
- ABD-Net: AttentivebutDiversePersonRe-Identification论文阅读