计算圆的面积--QT实现

博主补充部分:该实例是在Windows环境下,VS2010搭载QT5实现的。

创建项目步骤:

1、步骤一:

步骤二:



步骤三:

开始粘贴别人代码啦^_^ :来源:http://blog.csdn.net/chen_swe/article/details/50638524

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函数
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值