Qt 实例--计算圆面积
来源:互联网 发布:中信建投股票交易软件 编辑:程序博客网 时间:2024/06/06 14:17
这个小程序是为了Qt开发练手用的,为了详细掌握其中内容,我会在代码中加入详细注释。
Talk is cheap.
- 最终界面
1. calculate.h
#ifndef CALCULATE_H#define CALCULATE_H#include<QDialog>#include<QLabel>#include<QLineEdit>#include<QPushButton>class Calculate : public QDialog //继承自QDialog,最终界面为对话框{ Q_OBJECT //启动Qt元对象系统的一些特性(如支持信号与槽), //Qt官方文档中解释是:The Q_OBJECT macro must appear in the private section of a class definition //that declares its own signals and slots or that uses other services provided by Qt's meta-object system.public: Calculate(QDialog *parent = 0); //这个地方的参数我也不太清楚什么用,去掉以后也可以正常编译执行。以下是我找到的一种说法 //C++基础 //派生类显示调用父类的构造函数,并传参,调用顺序是先调用父类构造函数,再调用派生类的构造函数 //若不写调用父类的默认构造函数 ~Calculate();public slots: void slotsCalculate(); //定义槽,当点击Calculate按钮时自动触发,执行计算private: QLabel *LableRadius; QLabel *LableArea; QLineEdit *LineEditRadius; QLineEdit *LineEditArea; QPushButton *btnCalculate; QPushButton *btnClose;}; //qt与C++不同,类定义后必须加上分号#endif // CALCULATE_H
2. Calculate.cpp
#include "calculate.h"#include <QGridLayout>Calculate::Calculate(QDialog *parent) :QDialog(parent){ this->setWindowTitle(QString("Calculate")); //设置标题 LableRadius = new QLabel(tr("Radius :")); //给各个配件申请空间,并初始化 LableArea = new QLabel(tr("Area :")); LineEditRadius = new QLineEdit; LineEditArea = new QLineEdit; btnCalculate = new QPushButton(tr("Calculate")); btnClose = new QPushButton(tr("close")); QGridLayout *mainLayout = new QGridLayout(this); //增加网格布局 mainLayout->addWidget(LableRadius,2,0,1,1); mainLayout->addWidget(LineEditRadius,2,1,1,1); mainLayout->addWidget(LableArea,2,2,1,1); mainLayout->addWidget(LineEditArea,2,3,1,1); mainLayout->addWidget(btnCalculate,3,2,1,1); mainLayout->addWidget(btnClose,3,3,1,1); connect(btnCalculate,SIGNAL(clicked(bool)),this,SLOT(slotsCalculate())); //配置信号与槽 connect(btnClose,SIGNAL(clicked(bool)),this,SLOT(close())); //因为编译生成的窗口并没有关闭选项,就手动添加了一个close按钮,用来关闭窗口}Calculate::~Calculate(){}void Calculate::slotsCalculate(){ //调用函数获取半径,进行处理后显示到面积一栏上 if(!LineEditRadius->text().isEmpty()){ double radius = LineEditRadius->text().toDouble(); QString area; area.setNum(3.1415926 * radius *radius); LineEditArea->setText(area); }}
3. main.cpp
//main.cpp一般都比较固定,不同的地方只有第一个自定义头文件,函数中的窗口创建#include"calculate.h" //自定义头文件#include<QApplication> //Application类的定义。在每一个使用Qt图形化应用程序中都必须使用一个Application对象。 //QApplication管理各种各样的图形化应用程序的广泛资源,基本设置,控制流及事件处理 --from《qt5开发与实例》int main(int argc,char **argv){ QApplication a(argc,argv); //创建QApplication对象,并处理命令行 Calculate cal; //创建Calculate对象 cal.show(); //调用show()函数使cal可见 return a.exec(); //进入消息循环,等待输入并响应,退出时,返回一个值到main函数}
4. Qt开发心得
一开始觉得信号与槽会比较乱,后来我直接先设计UI,确定每个按钮都什么作用,把握好整体感,然后再去编程。需要什么就加什么,这样效果会比较好。
0 0
- Qt 实例--计算圆面积
- #Qt+VS#01计算圆的面积
- 计算圆的面积--QT实现
- QT学习_第一课:计算圆的面积
- 计算圆的面积
- 计算圆的面积
- 计算圆的面积
- 我的第一个Qt程序:使用Qt creator和Qt designer完成"HelloWorld"和计算圆面积的程序设计
- 作业二:计算圆面积
- 第二题 计算圆面积
- 网络131计算圆面积
- 计算两圆相交面积
- 两圆相交面积计算
- 计算圆,长方形的面积
- 圆面积的计算 S
- 计算面积
- 计算面积
- 计算面积
- c#编程之UDP通信
- 微信公众平台开发接口PHP SDK完整版
- USACO 3.1.1
- Android项目中引用外部项目library失败的原因
- 安卓手机用WIFI与电脑共享文件
- Qt 实例--计算圆面积
- [Leetcode]174. Dungeon Game @python
- P2P之UDP穿透NAT的原理与实现
- CSS块级元素和行内元素
- 允许远程连接mysql服务器
- 微信支付配置信息,JSAPI接口,H5调用微信js接口支付,微信公众号支付
- 黑客程序(asp.net网页调用exe程序) 2013
- 200Number of Islands
- 网页向flash传递参数