- 前言
- 一、准备工作
- 二、开发步骤
- 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中有一个机制——信号槽,信号槽的大致意思是假设界面上点击某一个按钮后d出对话框,这个点击的 *** 作就是信号,“d出对话框”的实现是通过槽来实现的,我们只需要在add.h中添加构造函数和槽函数。
add.h文件代码如下:
#ifndef ADD_H #define ADD_H #pragma once #include2.2 编辑add.cpp文件#include "ui_add.h" class add : public QMainWindow { Q_OBJECT public: 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
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++程序了,运行后的效果如图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)